1.以下代碼輸出結果是
intp=1;
int q=-1;
int i=-p++-q;
printf("%d \n",i);
答:結果是0。i=-p++-q;相當於i=-p-q;p++;最後p=2,q=-1。因爲-的優先級大於++,
2。以下代碼輸出結果是什麼?
注:原題爲第三列代碼,前兩列爲作爲對照添加的代碼
#include<iostream> using namespacestd; class CA { public: inti; virtualvoidff(){i=1;} voidprint() {printf("%d\n",i);} }; class CB:publicCA { private:inti; public: virtualvoidff(){i=2;} voidprint(){printf("%d\n",i);} }; class CC:publicCB { private: inti; public: virtualvoidff(){i=3;} voidprint(){printf("%d\n",i);} }; int main() { CB*A=newCC(); A->ff();//調用的是cc類的ff() A->print();//調用的是CB類的print/()CB類中的i沒有被賦值,下面兩個對象輸出結果原因同上 CC*B=(CC*)newCA(); B->ff(); B->print(); CC*C=(CC*)newCB(); C->ff(); C->print(); } 輸出三個隨機數。 |
#include<iostream> using namespacestd; class CA { public: inti; virtualvoidff(){i=1;} virtualvoidprint() {printf("%d\n",i);} }; class CB:publicCA { private:inti; public:virtualvoidff(){i=2;} virtualvoidprint(){printf("%d\n",i);} }; class CC:publicCB { private:inti; public: virtualvoidff(){i=3;} virtualvoidprint(){printf("%d\n",i);} }; int main() {CB*A=newCC();//構造的是CC對象 A->ff();//調用的是CC類中的ff() A->print();//調用的是CC類中的print() CC*B=(CC*)newCA(); B->ff(); B->print(); CC*C=(CC*)newCB(); C->ff(); C->print(); } 輸出 3 1 2 |
#include<iostream> using namespacestd; class CA { public:inti; virtualvoidff(){i=1;} virtualvoidprint() {printf("%d\n",i);} }; class CB:publicCA { private: inti; public: virtualvoidff(){i=2;} }; class CC:publicCB { private: inti; public: virtualvoidff(){i=3;} }; int main() { CB*A=newCC(); A->ff(); A->print(); CC*B=(CC*)newCA(); B->ff(); B->print(); CC*C=(CC*)newCB(); C->ff(); C->print(); } 輸出:隨機數 1 隨機數.因爲只有CA類中有print()函數,只有構造的是CA類的對象時纔會輸出設定的值。 |
3。C++比c好的地方。(多選)
C++是面嚮對象語言,編程更加人性化。利於實現封裝、繼承、多態。c是面向過程語言
4。inline函數的特點
(多選)
inline函數是將要調用的函數代碼替換到調用的地方,這樣能減少程序執行時的來回跳轉,提高程序執行的效率,但是會增加目標程序代碼量,即增加了空間開銷。
5。inline&宏的不同(多選)
內聯函數和宏的區別在於,宏是由預處理器對宏進行替代,而內聯函數是通過編
譯器控制來實現的。而且內聯函數是真正的函數,只是在需要用到的時候,內聯函數
像宏一樣的展開,所以取消了函數的參數壓棧,減少了調用的開銷。你可以象調用函
數一樣來調用內聯函數,而不必擔心會產生於處理宏的一些問題。內聯函數與帶參數宏定義的另一個區別是,內聯函數的參數類型和返回值類型在聲明中都有明確的指定;而帶參數宏定義的參數沒有類型的概念,只有在宏展開以後,才由編譯器檢查語法,這就存在很多的安全隱患。
具體參考http://blog.csdn.net/lw370481/article/details/7311668
6。什麼叫做抽象
抽象 抽象是哲學的根本特點, 抽象不能脫離具體而獨自存在。
我們所看到的大自然景象就是大自然的實物在我們腦海中的抽象。抽象就是我們對某類事物共性的描述。
具體來說,抽象是指:
1、將複雜物體的一個或幾個特性抽出去,而只注意其他特性的行動或過程(如頭腦只思考樹本身的形狀或只考慮樹葉的顏色,不受它們的大小和形狀的限制)。
2、將幾個有區別的物體的共同性質或特性,形象地抽取出來或孤立地進行考慮的行動或過程。
抽象是認識複雜現象過程中使用的思維工具,即抽出事物本質的共同的特性而暫不考慮它的細節,不考慮其他因素。