c++中是如何将一个变量转换成一个类对象的

chenbin200818 2011-07-06 05:27:23
举例说明
class A
{
int i;
public:
A& operator=(const A& a)
{
i = a.i;
return *this;
}
};

int main()
{
int ret = 10;
A aa;
aa = ret;

}

在 aa = ret 过程中 编译器 为什么能将 普通变量 转换成 类对象的
求解
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
独酌逸醉 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenbin200818 的回复:]

忘记写了 A(int);

A(ret) 发生隐性转换
请问 我从哪里能找到 该转换的相关资料 想学习下
[/Quote]
找本C++的书看看吧,都会有解释的。
ljq550000 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenbin200818 的回复:]

忘记写了 A(int);

A(ret) 发生隐性转换
请问 我从哪里能找到 该转换的相关资料 想学习下
[/Quote]


http://blog.csdn.net/vagrxie/article/details/1586340
看完你便明白
chenbin200818 2011-07-06
  • 打赏
  • 举报
回复
5楼能说明白点吗
我才是心翼 2011-07-06
  • 打赏
  • 举报
回复
隐式转换,消息映射机制~
chenbin200818 2011-07-06
  • 打赏
  • 举报
回复
忘记写了 A(int);

A(ret) 发生隐性转换
请问 我从哪里能找到 该转换的相关资料 想学习下

就想叫yoko 2011-07-06
  • 打赏
  • 举报
回复
1 2 楼正解
独酌逸醉 2011-07-06
  • 打赏
  • 举报
回复
你的代码编译会出错误,因为没有A(int)这个构造函数。
如果有的话,aa=ret等效于aa=A(ret),发生的隐式类型转换。
通常这种用法是要避免的,避免的方法为将构造函数声明为explict。具体请看《Effective C++》
至善者善之敌 2011-07-06
  • 打赏
  • 举报
回复
ret 发生了隐士的转换

aa = A(ret);

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧