0
我有下面的代碼是一個鍛鍊(約我問here)的一部分。瞭解MyClass x(y);其中y是類型MyClass的
class MyInt
{
public:
MyInt(int x) : MyValue(new int(x)){};
MyInt()
{
MyValue = 0;
}
private:
int* MyValue;
}
int main(int argc,char** argv)
{
MyInt y(1);
MyInt x(y);
.... //Mode code
}
該代碼編譯並運行(如果我沒有忘記把它的相關部分放在這裏)。我想了解線路
MyInt x(y);
我沒有,其輸入敏構造,唯一一個沒有參數,另一個是輸入一個int。 MyInt沒有operator()的定義。
什麼是計算機做那一行?
這是調用該編譯器爲你做了'副本constructor'。 – CoryKramer
哦!那是我不知道的語法。因此,取決於x和y的上下文和類型,x(y)可以表示:(1)具有參數y的x的構造函數,或者(2)具有參數y的x的運算符(),或者(3)複製構造函數將y的數據放入x中。這最後我不知道。 – Kae
「的構造'x'與'y'的參數」(其中'x'和'y'是相同類型的)是,根據定義,一個拷貝構造。 –