| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2817 人关注过本帖
标题:C++构造函数传参的问题
取消只看楼主 加入收藏
冥玫怪盗
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-7-11
收藏
 问题点数:0 回复次数:3 
C++构造函数传参的问题
请看下面代码:
#include "stdafx.h"
#include "iostream.h"


class Computation
{
public:
int i,j;

Computation(int i,int j);
Computation(int i);
Computation(const Computation & fzComputation);
~Computation();
};
Computation::Computation(int i,int j)
{
i = i;
j = j;
cout<<i<<"+"<<j<<'='<<i+j<<'\t'<<"调用了 Computation(int i,int j)构造方法"<<'\n';
}
Computation::Computation(int i)
{
i = i;
j = i;
cout<<i<<"-"<<j<<'='<<i-j<<'\t'<<"调用了 Computation(int i)构造方法"<<'\n';
}
Computation::Computation(const Computation & fzComputation)
{
i = fzComputation.i;
j = fzComputation.j;
cout<<i<<"+"<<j<<'='<<i+j<<'\t'<<"调用了Computation(const Computation & Computation)复制构造方法"<<'\n';
}
Computation::~Computation()
{
}
Computation CopyData(Computation obj)
{
return obj;
}
void test()
{
Computation cpt(10,5);
CopyData(cpt);
}
int main(int argc, char* argv[])
{
test();
return 0;
}
此代码输出结果是:
10+10=20 调用了 Computation(int i,int j)构造方法
-858993460+-858993460=-1717986920 调用了Computation(const Computation & Co
mputation)复制构造方法
-858993460+-858993460=-1717986920 调用了Computation(const Computation & Co
mputation)复制构造方法
Press any key to continue

后面输出的2行是并不是我想要的结果,原因是因为:
Computation::Computation(int i,int j)
{
i = i;
j = i;
cout<<i<<"+"<<j<<'='<<i+j<<'\t'<<"调用了 Computation(int i,int j)构造方法"<<'\n';
}中的参数与成员变量同名,我在学习java的时候,遇到这种情况可以加 this关键字解决,可是在c++中却不能使用(我知道换个参数名就可以正确显示,我只是想知道在c++中,遇到同名的时候有什么方法解决)。
更换参数名后输出结果是:
10+5=20 调用了 Computation(int i,int j)构造方法
10+5=20 调用了Computation(const Computation & Computation)复制构造方法
10+5=20 调用了Computation(const Computation & Computation)复制构造方法
Press any key to continue


请教各位前辈,谢谢
搜索更多相关主题的帖子: 函数 构造 
2008-07-11 17:34
冥玫怪盗
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-7-11
收藏
得分:0 
this有是有,可是在这里无法使用,vc6.0提示有错误,无法通过编译。
2008-07-11 17:43
冥玫怪盗
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-7-11
收藏
得分:0 
请说的详细点!谢谢

[[it] 本帖最后由 冥玫怪盗 于 2008-7-11 18:55 编辑 [/it]]
2008-07-11 18:12
冥玫怪盗
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-7-11
收藏
得分:0 
回复 8# linren 的帖子
感谢,十分感谢!
2008-07-11 18:52
快速回复:C++构造函数传参的问题
数据加载中...
 
   



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

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