c++实例研究
从0开始
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
<
2010年6月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
c++面试题(8)
(rss)
c++实例(45)
(rss)
django
(rss)
POJ(3)
(rss)
Unix 命令(8)
(rss)
web开发(19)
(rss)
工程问题集(10)
(rss)
杂谈(2)
(rss)
随笔档案
2012年2月 (1)
2011年6月 (1)
2011年3月 (1)
2010年11月 (6)
2010年10月 (28)
2010年9月 (2)
2010年7月 (5)
2010年6月 (24)
2010年5月 (31)
2010年4月 (5)
参考
besterChen
Make手册
高性能编程参考站
我的几个分站
CSDN站
GoogleAppEngine站
JavaEye站
北邮人站
豆瓣站
新浪站
搜索
最新评论
1. re: 手机九点密码锁的可能性有多少种?
请说出你所想到的几种可能
--烦恼的鸭子
2. re: 手机九点密码锁的可能性有多少种?
我的手机密码忘记了,各位帮帮忙
--烦恼的鸭子
3. re: 枚举类型和整形的转换和比较
ww
--sss
4. re: POJ 1062 拓扑排序
评论内容较长,点击标题查看
--npbool
5. re: POJ 1062 拓扑排序
这不是杭电上的题吧。
--Ancowei
阅读排行榜
1. [zz]linux sleep用法(7437)
2. svn 提交时 文件夹 missing 问题的解决(7313)
3. gdb调试g++ -g生成文件,list后不能看到源代码(4771)
4. gdb用十六进制打印变量值(3800)
5. 枚举类型和整形的转换和比较(2661)
评论排行榜
1. POJ 1062 拓扑排序(4)
2. 手机九点密码锁的可能性有多少种?(2)
3. 很有挑战性的题目(不断更新)(2)
4. 运算符||的结合律是从左往右还是从右往左(2)
5. 函数指针的取地址和解引用(2)
类指针成员的一种管理方法: 值和指针的结合
#include
<
cstdlib
>
#include
<
iostream
>
using
namespace
std;
struct
bottle
{
int
refCount;
int
weight;
int
size;
bottle(
int
w,
int
sz):refCount(
1
),weight(w),size(sz)
{}
bottle
*
getOwnCopy()
{
if
(refCount
==
1
)
return
this
;
refCount
--
;
return
new
bottle(weight,size);
}
private
:
bottle(
const
bottle
&
);
bottle
&
operator
=
(
const
bottle
&
);
}
;
class
ProductBottle
{
public
:
ProductBottle(
int
w
=
10
,
int
sz
=
20
):pinst(
new
bottle(w,sz))
{}
ProductBottle(
const
ProductBottle
&
other)
{
other.pinst
->
refCount
++
;
pinst
=
other.pinst;
}
ProductBottle
&
operator
=
(
const
ProductBottle
&
rhs)
{
rhs.pinst
->
refCount
++
;
if
(
--
pinst
->
refCount
==
0
)
delete pinst;
pinst
=
rhs.pinst;
return
*
this
;
}
~
ProductBottle()
{
if
(
--
pinst
->
refCount
==
0
)
delete pinst;
}
int
AddWater(
int
waterWeight)
{
pinst
=
pinst
->
getOwnCopy();
pinst
->
weight
+=
waterWeight;
return
0
;
}
int
show()
{
cout
<<
pinst
->
weight
<<
'
'
<<
pinst
->
size
<<
'
'
<<
pinst
->
refCount
<<
endl;
}
private
:
bottle
*
pinst;
}
;
int
main()
{
ProductBottle Cola;
ProductBottle Sprint(Cola);
ProductBottle Finda(Sprint);
/**/
/*
***************************
*/
Cola.show();
Sprint.show();
Finda.show();
/**/
/*
***************************
*/
Cola.AddWater(
50
);
/**/
/*
***************************
*/
Cola.show();
Sprint.show();
Finda.show();
/**/
/*
***************************
*/
system(
"
PAUSE
"
);
return
0
;
}
posted on 2010-05-10 22:14
elprup
阅读(218)
评论(0)
编辑
收藏
引用
所属分类:
c++实例
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
成员变量的地址
struct对齐一题
类仅有复制构造函数时,将覆盖默认构造函数和复制构造函数
c++异常:多个catch只走一个分支
正负对模运算的影响
运算符重载回忆代码
自定义析构函数和delete &object不能共存
copy构造函数可以访问同类型参数的私有成员,却不能访问非同类的参数的私有成员
隐式的copy构造函数
c++沉思录 代码集 2
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © elprup