我嘗試了不同的版本調用構造函數,我想出了這個分配初始化
#include<iostream>
#include<string>
using namespace std;
class game{
public:
float version;
string name;
game()
{
name = "game";
version = 1.0;
}
game(float v,string n)
{
version = v;
name = n;
}
game(float v)
{
version = v;
name="any";
}
};
int main()
{
game lol1(1.0,"league of legends"); //functional form
game lol2 = 2.0; //assignment form
game lol3{3.0,"league2"}; //uniform initialization
game *pt = &lol1;
cout<<pt->name<<endl;
return 0;
}
每個語句編譯,但如果我寫
game lol2 = 2.0,"league of legends2"; //code 2
我得到一個錯誤:
expected unqualified-id before string constant
但下面的代碼工作正常:
game lol2 = {2.0,"league of legends2"}; //code 3
我不明白第二個代碼到底是什麼問題。有任何想法嗎?
您可以使用默認參數將構造函數壓縮爲單個構造函數。 –
爲了娛樂,添加一個構造函數,只需要一個字符串.... –