2017年3月21日 星期二

盡可能的為你的程式設計空建構子

盡可能的為你的程式設計空建構子

tags: C++ Concept
在某些情況下沒有空的建構子可能會導致很難尋找的錯誤,比如說Vector的初始化。
/*****************************************************************
Name : 
Date : 2017/03/21
By   : CharlotteHonG
Final: 2017/03/21
*****************************************************************/
#include <iostream>
#include <vector>
using namespace std;

class ClassB{
public:
    ClassB(int i){}
};

class ClassA {
public:
    ClassA(){
        // i.resize(1); // Error
    }
public:
    vector<ClassB> i;
};
/*==============================================================*/
int main(int argc, char const *argv[]){
    ClassA a;
    return 0;
}
/*==============================================================*/
上述代碼因為沒有空建構子導致 vector 初始化,或調整長度時出問題
ClassB(int i=1){}
ClassB(){}
補上空的建構子或是具有預設數值的引入參數

沒有留言:

張貼留言