| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:关于this指针的问题
只看楼主 加入收藏
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
收藏
 问题点数:0 回复次数:4 
关于this指针的问题

下面是代码:
#include <iostream.h>

class RMB
{
public:
RMB(unsigned int d, unsigned int c);
friend RMB operator + (RMB& s1, RMB& s2);
friend RMB& operator ++ (RMB& s);
void display()
{
cout<<yuan+jf/100.0<<endl;
}
protected:
unsigned int yuan;
unsigned int jf;
};

RMB::RMB(unsigned int d, unsigned int c)
{
yuan=d;
jf=c;
while(jf>=100)
{
yuan++;
jf-=100;
}
}

RMB operator + (RMB& s1, RMB& s2)
{
unsigned int c=s1.jf+s2.jf;
unsigned int d=s1.yuan+s2.yuan ;
RMB result (d,c);
return result;
}

RMB& operator ++ (RMB& s)
{
s.jf++;
if(s.jf>=100)
{
s.jf-=100;
s.yuan++;
}
return s;
}

void main()
{
RMB d1(1, 60);
RMB d2(2, 50);
RMB d3(0,0);
d3=d1+d2;
++d3;
d3.display();
}



就是红色部分的,后面那个return的后面为什么不能用this指针。还有*this和this不何不同啊。
我一改成this就显示错误:
error C2673: '++' : global functions do not have 'this' pointer

搜索更多相关主题的帖子: int 指针 RMB unsigned yuan 
2006-09-17 16:11
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
收藏
得分:0 
为什么没有帮忙啊,大家都来给我讲一下啊
2006-09-17 17:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
友元函数怎么会有this指针呢?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-17 21:48
jianli
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-9-14
收藏
得分:0 

版主,麻烦你,给我稍微细说一下,友元函数没有指针啊。这次又知道了,一个基础知识。可能我的书没有看仔细。不管怎样还是谢版主了。

2006-09-17 21:57
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
友员其实就是外部函数,只是这种外部函数比较特殊,他可以访问类的内部成员,大体可以这样理解。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-09-18 08:49
快速回复:关于this指针的问题
数据加载中...
 
   



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

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