class Circle
{
public:
Circle();
int calcArea();
private:
int x;
int y;
int r;
};
Circle::Circle()
{
x=0;
y=0;
r=0;
}
class Circle
{
public:
Circle();//无参构造函数
Circle(int _r);//有参构造函数
Circle(int _x,int _y,int _r);
int calcArea();
private:
int x;
int y;
int r;
};
Circle::Circle()
{
x=0;
y=0;
r=0;
}
Circle::Circle(int _r)
{
x=0;
y=0;
r=_r;
}
Circle::Circle(int _x,int _y,int _r)
{
x=_x;
y=_y;
r=_r;
}
Circle::Circle(int _x,int _y,int _r) :x(_x),y(_y),r(_r)
{
cout<<"x="<<x<<" y="<<y<<" r="<<r<<endl;
}
class Circle
{
public:
Circle();
Circle(int _r);
Circle(int _x,int _y,int _r);
Circle(const Circle &c);//拷贝构造函数
int calcArea();
private:
int x;
int y;
int r;
};
Circle::Circle(const Circle &c)
{
x=c.x;
y=c.y;
r=c.r;
cout<<"x="<<x<<" y="<<y<<" r="<<r<<endl;
}
int main(int argc,const char *argv[])
{
Circle a;
Circle b(a);
Circle c=b;
}
void Test(Circle c)
{
cout<< "Test"<<endl;
}
禁止优化
g++ xxx.cpp -fno-elide-constructors