class Point{ int x ; int y ; }; |
对于上面定义的类, c++编译器一般默认定义四个函数:不带参数的构造函数(默认构造函数),带一个参数为该类对象的构造函数(拷贝构造函数),赋值函数(=),析构函数。示例代码:
/*demo1.cpp*/
#include <iostream>
using namespace std;
class Point{
public:
int x ;
int y ;
public:
/* Point( const Point &a)
{
x = a.x ;
y = a.y ;
cout<<"copy construct"<<endl ;
}
Point():x(0),y(0)
{}*/ //第二编译请去掉该注释语句
void outPut()
{
cout<<x<<endl<<y<<endl ;
}
};
Point Copy( const Point &a )
{
Point tmp ;
tmp.x = a.x ;
tmp.y = a.y ;
return tmp ;
}
int main()
{
Point p1,p2,p3 ;
p1.x = 1 ;
p1.y = 2 ;
p3 = p1 ;
p2 = Copy(p1);
p2.outPut();
p3.outPut();
return 0 ;
}