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改變了以...