强制生成无参的构造函数
class cy
{
int a;
public:
cy() = default;//强制生成无参数的默认构造函数,函数体为空
cy(int a_)
{
a = a_;
}
int sh()
{
return a;
}
};
int main()
{
cy s1;
cout << s1.sh();//使用空的构造函数赋值,结果为不可预料的负值
cy s2{ 10 };
cout << endl<<s2.sh();//定义类s2时传入实参令其初始化,输出该值
}
输出:
-858993460
10
利用函数访问私有成员
两种方法:
1.用类定义变量时将变量中的变量初始化
class cy
{
int a;
public:
cy()//在用cy类定义变量的时,若要对变量进行无参初始化,则调用该构造函数
{
a = 1;
}
cy(int a_)//在用cy类定义变量的时,若要对变量进行有参初始化,则调用该构造函数
{
a = a_;
}
void ass()//利用函数访问私有成员
{
cout << a<<endl;
}
};
int main()
{
cy s1, s2{2};//在用类定义变量时初始化
s1.ass();
s2.ass();
s1 = s2;
s1.ass();
s2.ass();
2.类定义变量后,使用函数对类中的私有成员赋值()
class cy
{
//以下为私有成员
int a;
double b;
char c;
string d;
public:
//以下为公有成员
cy()//在用cy类定义变量的时,若要对变量进行无参初始化,则调用该构造函数
{
a = 1; b = 2.2; c = 'A'; d = "abc";
}
//无实参访问私有成员变量,给私有成员赋值
int zx() { return a; }
double fdx() { return b; }
char zfx() { return c; }
string zfcx(){ return d; }