2015-04-01 82 views
0

我將在假設中發言,因爲我還沒有測試任何東西。我甚至不知道從哪裏開始。C++:結構,運算符「new」和const

所以我有幾個結構,我用值初始化,我希望他們被傳遞給一個類。但是我希望類的每個實例都擁有自己的最初使用相同值定義的那些結構中的一個實例。

對於可視化的緣故:

struct Car{ 
int value, mileage, 

std::string model_name; 
std::string owner; 

double insurance_premium} 

Car Porsche, Toyota, Honda; 

我怎麼會呢,還是甚至可以創建任何該等聲明Car的新實例?你可以爲結構做一個拷貝構造函數嗎?

我有一個想法,可能會聲明並初始化每個Car對象,然後將它們標記爲const。那麼可以撥打new。這隻會使我的一切崩潰嗎?我不知道。

請協助。

+0

默認複製和分配應該適用於此,即'Car newCar = Porsche;' – 2015-04-01 19:28:35

+0

您已經有了一個編譯器定義的默認拷貝構造函數(和賦值運算符),它完全符合您的需求。 – molbdnilo 2015-04-01 19:39:59

+0

@AlejandroDíazM'kay,謝謝。 – neutralboolean 2015-04-01 19:43:41

回答

3

在C++中存在要publicclass默認爲privateclass一個和除了struct默認一個struct其成員之間沒有差別。你可以對另一個做其他事情。

+0

因此,我可以只定義一個拷貝構造函數,並創建相同結構的相同版本? – neutralboolean 2015-04-01 19:27:57

+0

你可以。你究竟想要做什麼? – NathanOliver 2015-04-01 19:28:25

+0

@neutralboolean:C++編譯器會自動創建一個拷貝構造函數 - 不需要自己定義一個。 – MikeMB 2015-04-01 19:36:20