| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1956 人关注过本帖
标题:小白关于c++函数问题
只看楼主 加入收藏
yasmin
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2016-7-22
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:3 
小白关于c++函数问题
程序代码:
#include <iostream>
using namespace std;

class A
{
    public:
    int a;
    
    A(int a)
    {
    this->a = a;
    cout << this->a <<endl;
}
};

void fun(A a)
{
cout << a.a << endl;
}

int main()
{
    A a(1);
    fun(9);
}


全局函数中有没有创建了一个a对象呢 ,如果有那不是冲突了吗 结果显示打印出9 求大神解释下啊
2016-08-07 20:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:14 
全局函数中有没有创建了一个a对象呢 --- 没听懂
如果有那不是冲突了吗 --- 没听懂

fun(9) 时,通过9创建了一个匿名临时A对象。
为了避免这种操蛋的隐式构造,你可以
explicit A(int a)
2016-08-07 21:10
yasmin
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2016-7-22
收藏
得分:0 
回复 2楼 rjsp
大神我就是想问下在fun()里面我调用了a.a  但是如你所说的fun建立的是一个匿名对象 那为什么输出的是这个匿名对象的a值呢?
2016-08-07 21:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
fun(9);
就相当于
fun( A(9) );
2016-08-07 21:32
快速回复:小白关于c++函数问题
数据加载中...
 
   



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

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