调用案例
【构造函数】
#include <iostream>
#include <string>
using namespace std;
class point
{
private:
int x,y;
public:
point(int a=0,intb=0) //定义构造函数
{
x=a;
y=b;
}
int getx()
{
return x;
}
int gety()
{
return y;
}
};
point g()
{
point q(3,5);
return q;
}
void main()
{
point p1(2,4); //用构造函数创建对象p1
cout<<p1.getx()<<""<<p1.gety()<<endl; //第一种情况
point p2=g(); //第二种情况 cout<<p2.getx()<<""<<p2.gety()<<endl;
system("pause");
}【拷贝构造函数】
#include <iostream>
#include <string>
using namespace std;
class point
{
private:
int x,y;
public:
point(int a=0,intb=0) //定义构造函数
{
x=a;
y=b;
}
point(point &p); //声明拷贝构造函数
int getx()
{
return x;
}
int gety()
{
return y;
}
};
point::point(point &p) //定义拷贝构造函数
{
x=p.x+10;
y=p.y+20;
cout<<"调用拷贝构造函数"<<endl;
}
void f(point p)
{
cout<<p.getx()<<" "<<p.gety()<<endl;
}
point g()
{
point q(3,5);
return q;
}
void main()
{
point p1(2,4); //用构造函数创建对象p1
point p2(p1); //第一种情况
cout<<p2.getx()<<" "<<p2.gety()<<endl;
f(p2); //第二种情况
p2=g(); //第三种情况
cout<<p2.getx()<<" "<<p2.gety()<<endl;
system("pause");
}