| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3596 人关注过本帖
标题:[分享]一个有趣的小程序
取消只看楼主 加入收藏
hegj
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-5
收藏
 问题点数:0 回复次数:1 
[分享]一个有趣的小程序
与大家分享一个有趣的程序。摘自《21天学通c++》
#include<iostream>

using namespace std;
class SimpleCat
{
public:
SimpleCat();
SimpleCat(SimpleCat&);
~SimpleCat();
};

SimpleCat::SimpleCat()
{
cout << "Simple Cat Constructor..." << endl;
}

SimpleCat::SimpleCat(SimpleCat&)
{
cout << "Simple Cat Cope Constructor ..." << endl;
}

SimpleCat::~SimpleCat()
{
cout << "Simple Cat Destructor ..." << endl;
}

SimpleCat FunctionOne(SimpleCat thecat);
SimpleCat* FunctionTwo(SimpleCat *theCat);

int main()
{
cout << "Making a cat..." << endl;
SimpleCat Frisky;
cout<<"Calling FunctionOne..." << endl;
FunctionOne(Frisky);
cout << "Calling FunctionTwo..." << endl;
FunctionTwo(&Frisky);
return 0;
}

SimpleCat FunctionOne(SimpleCat theCat)
{
cout << "Function One . Returning..." << endl;
return theCat;
}

SimpleCat* FunctionTwo(SimpleCat *theCat)
{
cout << "Function Two. Returning..." << endl;
return theCat;
}
希望没打错.
这个程序旨在讲解为什么要用引用传递对象。
大家可以看看输出,从中可以收获不少。
可以看到构造,复制构造,析构函数怎样调用。
本人觉得挺有意思的。

[此贴子已经被作者于2007-11-2 23:07:14编辑过]

搜索更多相关主题的帖子: SimpleCat Constructor cout 
2007-11-02 21:35
hegj
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-5
收藏
得分:0 
输出:
Making a cat...
Simple Cat Constructor... //声明Frisky时,调用默认构造函数
Calling FunctionOne...
Simple Cat Cope Constructor ... //按值传递,会在堆栈中创建一个Frisky的复制1,作为函数的局部对象
Function One . Returning...
Simple Cat Cope Constructor ... //按值返回,会生成一个复制2
Simple Cat Destructor ... //返回值没有被赋给任何对象,因此为返回而创建的临时对象被丢弃,导致析构函数被调用
Simple Cat Destructor ... //FanctionOne 结束,局部拷贝不再在作用域,因此被销毁,复制1析构
Calling FunctionTwo... //按引用传递,不会创建对象拷贝,按引用返回,也不会创建拷贝,不用调用复制构造函数与析构函数。可以效率很多
Function Two. Returning...
Simple Cat Destructor ... //程序结束,Frisky不再在作用域,调用析构函数将其销毁。

希望与大家分享。一起进步。。。

2007-11-02 23:26
快速回复:[分享]一个有趣的小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016491 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved