Я новичок в 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();
}
Код 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();
}
Почему код 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;
}
Других решений пока нет …