Bah*_*ali -1 c++ class-constructors
我是C++的新手.学习构造函数.请参阅下面提到的两个代码,并提供原因,为什么代码2不起作用.谢谢.
代码1:
#include <iostream>
using namespace std;
class Box
{
int x;
public:
Box::Box(int a=0)
{
x = a;
}
void print();
};
void Box::print()
{
cout << "x=" << x << endl;
}
int main()
{
Box x(100);
x.print();
}
Run Code Online (Sandbox Code Playgroud)
代码2:
#include <iostream>
using namespace std;
class Box
{
int x;
public:
Box(int a=0);
void print();
};
Box::Box(int a=0)
{
x = a;
}
void Box::print()
{
cout << "x=" << x << endl;
}
int main()
{
Box x(100);
x.print();
}
Run Code Online (Sandbox Code Playgroud)
为什么代码1工作但代码2不工作?
由于某些奇怪的原因,您不能重复参数的默认值:
class Box
{
int x;
public:
Box(int a=0);
//------------^ given here
void print();
};
Box::Box(int a=0)
//------------^^ must not be repeated (even if same value)
{
x = a;
}
Run Code Online (Sandbox Code Playgroud)