日志19
面向对象 : 析构函数
#include<iostream>
#include<cmath>
using namespace std;
class point
{
protected:
int X,Y;
public:
void set(int x,int y)
{
X=x;Y=y;
}
int getX()
{
return X;
}
int getY()
{
return Y;
}
point(int x=0,int y=0):X(x),Y(y)
{
cout<<"hello point("<<X<<","<<Y<<")\n"; //结果输出两个hello 第一个是p1 第二个是p2
}
~point() //析构函数 系统自动调用 若创建的对象带指针 必要用析构
{
cout<<"BYB point("<<X<<","<<Y<<")\n";//先出p2 再出p1 栈结构 先进后出
}
double distO()
{
return sqrt(X*X+Y*Y);
}
double dist(point &p)
{
int x,y;
x=X-p.X;
y=Y-p.Y;
return sqrt(x*x+y*y);
}
void show()
{
cout<<"point("<<this->X<<","<<this->Y<<")\n";
}
};
int main()
{
point p1,p2(3,4);
p1.show();
p2.show();
p2.set(3,5);
point p3(p2); //初始化,复制(调用构造函数 复制构造函数 没写复制构造函数 系统自己定义 函数体里有代码 ) p3的位置由p2初始化
p3.show();
}
#include<iostream>
#include<cmath>
using namespace std;
class point
{
protected:
int X,Y;
public:
void set(int x,int y)
{
X=x;Y=y;
}
int getX()
{
return X;
}
int getY()
{
return Y;
}
point(int x=0,int y=0):X(x),Y(y)
{
cout<<"hello point("<<X<<","<<Y<<")\n"; //结果输出两个hello 第一个是p1 第二个是p2
}
~point() //析构函数 系统自动调用 若创建的对象带指针 必要用析构
{
cout<<"BYB point("<<X<<","<<Y<<")\n";//先出p2 再出p1 栈结构 先进后出
}
double distO()
{
return sqrt(X*X+Y*Y);
}
double dist(point &p)
{
int x,y;
x=X-p.X;
y=Y-p.Y;
return sqrt(x*x+y*y);
}
void show()
{
cout<<"point("<<this->X<<","<<this->Y<<")\n";
}
};
int main()
{
point p1,p2(3,4);
p1.show();
p2.show();
p2.set(3,5);
point p3(p2); //初始化,复制(调用构造函数 复制构造函数 没写复制构造函数 系统自己定义 函数体里有代码 ) p3的位置由p2初始化
p3.show();
}
全部评论
相关推荐
04-25 21:06
门头沟学院 后端 点赞 评论 收藏
分享
点赞 评论 收藏
分享