#include<iostream>
using namespace std;
class test
{
int x;
int y;
public:
test(int a,int b);//带有参数的构造函数
test(int a);//带有参数的构造函数
//两个构造函数实现了构造函数的重载,系统将根据后面给出的参数个数来决定所要调用的构造函数
void clear()
{
x=y=0;
}
void disp()
{
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
}
};
test::test(int a,int b):x(a),y(b)//冒号后面的部分被称为初始化列表,也可以去掉冒号后面的部分,函数体里面写x=a;y=b;
{
}
test::test(int a):x(a)//冒号后面的部分被称为初始化列表,也可以去掉冒号后面的部分,函数体里面写x=a;
{
}
int main()
{
test t1(100,200);//隐式调用构造函数,隐式调用使用的情况比较多
t1.disp();
test t2=test(300,400);//显式调用构造函数,就是在=的后面直接给出构造函数名及其参数
t2.disp();
t2.clear();
t2.disp();
test t3=500;//等同于 test t3(500);
t3.disp();
return 0;
}
/*result:
x=100
y=200
x=300
y=400
x=0
y=0
x=500
y=0
*/
面向对象程序设计 类 构造函数的显式调用+构造函数的重载
最新推荐文章于 2022-07-29 09:33:05 发布