常見C 知識點

2021-05-21 22:52:43 字數 1120 閱讀 8138

1、非c++內建型別   a   和   b,在哪幾種情況下b能隱式轉化為a?

a.   class   b   :   public   a     //   b公有繼承自a,可以是間接繼承的   

b.   class   b     //   b實現了隱式轉化為a的轉化   

c.   class   a     //   a實現了non-explicit的引數為b(可以有其他帶預設值的引數)建構函式   

d.   a&   operator=   (   const   a&   );   //   賦值操作,雖不是正宗的隱式型別轉換,但也可以勉強算乙個  

2、 以下**有什麼問題?[c++易]  

cout   <<   (true?1:"1")   <<   endl;  

答:三元表示式「?:」問號後面的兩個運算元必須為同一型別。

3、  以下反向遍歷array陣列的方法有什麼錯誤?[stl易]  

vector   array;  

array.push_back(   1   );  

array.push_back(   2   );  

array.push_back(   3   );  

for(   vector::size_type   i=array.size()-1;   i>=0;   --i   )   //   反向遍歷array陣列  

答:首先陣列定義有誤,應加上型別引數:vectorarray。其次vector::size_type被定義為unsigned   int,即無符號數,這樣做為迴圈變數的i為0時再減1就會變成最大的整數,導致迴圈失去控制。

4、c++中的空類,預設產生哪些類成員函式?[c++易]  

答:  

class   empty  

;     

5、寫乙個函式,完成記憶體之間的拷貝。[考慮問題是否全面]  

答:  

void*   mymemcpy(   void   *dest,   const   void   *src,   size_t   count   )  

更好**:http://topic.csdn.net/t/20051105/21/4374182.html

C 常見知識點總結

1.new delete malloc free的區別和聯絡 malloc free 使用示例,int length 32 int p int malloc sizeof int length if p free p malloc的返回值是void 所以在呼叫時要顯式地進行型別轉換,將其轉換為所需要...

c 常見知識點1

1 深拷貝和淺拷貝 編譯系統在我們沒有自己定義拷貝建構函式時,會在拷貝物件時呼叫預設拷貝建構函式,進行的是淺拷貝 在對含有指標成員的物件進行拷貝時,必須要自己定義拷貝建構函式,使拷貝後的物件指標成員有自己的記憶體空間,即進行深拷貝 2 bool,int,float,指標型別與0進行比較 bool a...

IOS常見知識點

xcode 4.4 陣列和物件的訪問都可以簡寫了,例如賦值 array string 1 dic 取值 array 1 dic 1 早期的xcode編譯環境對方法順序要求很高,前面的函式體找不到後面的例項方法,發出警告,要麼只能在類別中宣告,多寫 要麼打亂函式順序,導致維護麻煩,新的llvm改變了以...