在我的代碼,我試圖做一個字符串類(這是一個分配),並具有下列數據的類中的一個對象複製到另一個:C++:</p> <pre><code>private: int strLen; int dataLen; char* data; </code></pre> <p>和構造函數:一個構造函數
myStr();
myStr(const myStr&);
myStr(const char*);
第三構造函數採用一個字符串數組,分配空間數據並把它複製在,設置的strlen到字符的字符串中的量,並且DATALEN到陣列的大小。第二個構造函數是相似的,但它需要一個完整的對象,並且應該將其複製到構造函數創建的新對象中。一個例子可能是這樣的:
myStr fred("Fred");
myStr quote(fred);
我的問題是,有沒有辦法複製的對象弗雷德反對在構造函數中報價不復制數據(即STRLEN,DATALEN和數據)的每個單獨的作品呢?對於這個任務,只有3個數據,但是說有50個,或100個,這將是漫長而乏味的。我試圖尋找答案,並且遇到了複製構造函數,但是我不知道它們是如何工作的,或者如果他們只是手動複製每一塊數據。我對類的語法很陌生,所以我很抱歉如果答案很微不足道,我只是在所有錯誤的地方尋找答案。謝謝。
沒有。你必須按照正確的順序乖乖地複製需要複製的所有內容。在這裏,你不能只複製一切。您還需要將新對象的指針初始化爲新的動態分配的「數據」。並且不要忘記賦值運算符。 –
如果您在班級中有50或100名成員,您會遇到嚴重的設計問題。 –