2013搜狗校园招聘笔试题
生活随笔
收集整理的這篇文章主要介紹了
2013搜狗校园招聘笔试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
研習了Linux公社發布的2013搜狗校園招聘筆試題,還是有些收獲的。
?
?
//第一題:以下程序的輸出是___________________ class Base { public:Base(int j):i(j){}virtual ~Base(){}void func1(){i *= 10; func2();}int getValue(){return i;} protected:virtual void func2(){i++;} protected:int i; };class Child:public Base { public:Child(int j):Base(j){}void func1(){i *= 100; func2();} protected:void func2(){i += 2;} };int main() {Base* pb = new Child(1); //pb指向的是Child類對象pb->func1(); //func1不是虛函數,所以調用Base::func1()cout<<pb->getValue()<<endl; //同理調用Base的函數 delete pb;return 0; } //至于func1中的func2函數調用。 //一般成員函數默認會將this指針作為參數傳遞給自己,比如: // class A { // public: // void fun() {i = 5;} // private: // int i; // }; // void main { // A a; // a.fun(); // } //那么調用a.fun()時,會將指向a自己的this指針傳遞給fun函數,所以 // void fun() {i = 5;} //等價于 // void fun(A *this) {this.i = 5;} //所以在上面題目相當于調用func1(this),然后調用this.func2()將this傳遞給func2函數, //func2函數為虛函數,而這個this指針指向的實質是個Child對象,因此調用Child的func2函數。 //因此答案是12?
?
//這個題目非常有意思。 //第四題:程序出錯在什么階段: #include <iostream> using namespace std;int main() {http://www.linuxidc.comcout<<"welcome to linuxidc"<<endl;return 0; }//A:編譯時;B:運行時;C:編譯和運行時都出錯;D程序運行正常//選D。因為http://www.linuxidc.com中//后面是注釋,前面是標簽(類似goto的標簽)。(坑爹啊)?
?
?
轉載于:https://www.cnblogs.com/wnarutou/archive/2012/10/21/2730323.html
總結
以上是生活随笔為你收集整理的2013搜狗校园招聘笔试题的全部內容,希望文章能夠幫你解決所遇到的問題。