我創建了一個簡單的類,它接受構造函數的參數,如下所示。爲類創建一個帶有參數的複製構造函數
class Jam
{
int age;
std::string name;
Jam *jam;
Jam(std::string argName) {
name = argName;
}
};
它需要的參數並初始化Jam
的name
到傳遞的參數。唯一的問題是,我希望能夠將Jam
的另一個副本傳遞給構造函數,以便通過複製值來初始化其指向現有類的指針。通常在C++中,你可以指定Jam *jam = new Jam(existingJam);
,它會默認複製,但由於我已經有std::string argName
作爲參數,它拒絕讓我這樣做。
我閱讀了一篇文章here,它解釋瞭如何創建自己的拷貝構造函數,但它非常繁瑣,並且涉及單獨拷貝每個類成員,這對於具有10+數據成員的類來說似乎沒有多大意義。有沒有比單獨初始化每個成員更好的方法?
Jam::Jam(std::string argName, Jam *argJam)
{
age = argJam->age;
//etc...
}
這不是一個複製構造函數,它有一個額外的字符串參數。 – 2012-07-21 12:14:19
它死了如何拒絕讓你這樣做?問題是什麼? – juanchopanza 2012-07-21 12:31:45