打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++ 匿名对象的使用
#include "iostream"
using namespace std;
class Location
{
public:
Location(int xx = 0, int yy = 0)
{
X = xx;  Y = yy;  cout << "构造函数Constructor Object.\n";
}

Location(const Location & p)    //复制构造函数
{
X = p.X;  Y = p.Y;   cout << "拷贝构造函数Copy_constructor called." << endl;
}
~Location()
{
cout << X << "," << Y << "析构 Object destroyed." << endl;
}
int  GetX() { return X; } int GetY() { return Y; }
private:   int  X, Y;
};

//alt + f8 排版
void f(Location  p)
{
cout << "Funtion:" << p.GetX() << "," << p.GetY() << endl;
}

Location g()
{
Location A(1, 2);//此时创建一个对象,构造函数
return A;//执行析构函数
//返回值是个Location的匿名对象,关键是怎么接?
}

//对象初始化操作 和 =等号操作 是两个不同的概念
//匿名对象的去和留,关键看,返回时如何接
void main()
{
//若返回的匿名对象,赋值给另外一个同类型的对象,那么匿名对象会被析构
Location B;//1默认构造函数
B = g();  //用匿名对象 赋值 给B对象,然后匿名对象析构
/*
两次构造,一次拷贝构造,两次析构。
**/

//若返回的匿名对象,来初始化另外一个同类型的对象,那么匿名对象会直接转成新的对象
Location C = g();
/*1次构造,一次拷贝构造,1次析构。*/
cout << "传智扫地僧测试" << endl;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
构造函数的理解和应用场景
关于构造函数中的异常处理
构造函数 析构函数 拷贝构造函数 this指针的使用
C++构造函数的调用顺序
拷贝构造函数被调用的时机
【C++基础之十七】抑制由构造函数定义的隐式转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服