問題有人能向我解釋爲什麼...與C++模板類初始化
DataStructure<MyClass> ds;
cin >> size;
ds = DataStructure<MyClass>(size);
導致我的程序崩潰,但...
cin >> size;
DataStructure<MyClass> ds = DataStructure<MyClass>(size);
不?
我認爲這與我的程序使用默認的構造函數有關,後面嘗試使用隱式拷貝構造函數,但我不確定。
爲了讓更多的背景,我創建一個哈希表類,並在默認的構造函數,我與數據數組初始化爲nullptr
並與size
參數的構造,我創建一個數據數組new T * [size]
和將每個元素設置爲nullptr
。
Constructor without any parameters:
this->data = nullptr;
與
Constructor with size parameter:
this->data= new T * [size];
for(int i = 0; i< size; i++)
{
data[i] = nullptr;
}
的'DataStructure'模板壞了。將其退還給供應商並要求退款。 –
'Foo a; a = Foo(bar);'!='Foo a = Foo(bar);' – Paranaix
'a'最終是否是相同的值?如果不是,你能解釋爲什麼不? – Mikey