标题:这个x是哪来的
只看楼主
疯子傻了
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-24
结帖率:33.33%
已结贴  问题点数:18 回复次数:6 
这个x是哪来的
问题在红色注释中!!!!!!!!!!!  谢谢


#include <iostream>
using namespace std;
class A
{
public:
    A(int i){cout<<"执行构造函数创建一个对象\n";x=i;}
    A(A&a){x=a.x ;
/* 这个x是哪来的,如果是 “private: int x;”中的 x,干嘛要把x赋给x,这不是很无聊???

*/
cout<<"执行复制构造函数创建一个对象\n";}
    ~A(){cout<<"执行析构函数!\n";}
    int get(){return x;}
private:
    int x;
};
A func()
{
    cout<<"跳转到func函数中!\n";
    A *p=new A(99);
    cout<<"堆中对象的地址:"<<p<<endl;
    return *p;
}
int main()
{
    A&r=func();
    cout<<"堆中对象的副本的地址:"<<&r<<endl;
    cout<<r.get()<<endl;
    A*p=&r;
    delete p;
    return 0;
}

[ 本帖最后由 疯子傻了 于 2012-12-11 15:25 编辑 ]
搜索更多相关主题的帖子: include public 
2012-12-11 15:23
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:5 
A(A&a){x=a.x ;
/* 这个x是哪来的,如果是 “private: int x;”中的 x,干嘛要把x赋给x,这不是很无聊???

*/

这个x是形参里面a对象的私有成员,把a.x赋给新对象的x。
不无聊。
复制构造函数



我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-12-11 15:31
疯子傻了
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-24
得分:0 
回复 2楼 mmmmmmmmmmmm
把a.x赋给新对象的x 中的新对象x是在哪声明的呢
2012-12-11 20:29
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:5 
程序代码:
#include <iostream>
using namespace std;
class A
{
public:
    A(int i){cout<<"执行构造函数创建一个对象\n";x=i;}
    A(A&a){x=a.x ;
/* 这个x是哪来的,如果是 “private: int x;”中的 x,干嘛要把x赋给x,这不是很无聊???

*/
cout<<"执行复制构造函数创建一个对象\n";}
    ~A(){cout<<"执行析构函数!\n";}
    int get(){return x;}
private:
    int x;
};
A func()
{
    cout<<"跳转到func函数中!\n";
    A *p=new A(99);
    cout<<"堆中对象的地址:"<<p<<endl;
    return *p;
    delete p;
}
int main()
{
    A&r=func();
    cout<<"堆中对象的副本的地址:"<<&r<<endl;
    cout<<r.get()<<endl;
    A *p=&r;
   //
    return 0;
}


诸多不会,试着调试

[ 本帖最后由 qunxingw 于 2012-12-14 23:24 编辑 ]

www.qunxingw.wang
2012-12-14 23:23
liao25428301
Rank: 2
等 级:论坛游民
帖 子:13
专家分:26
注 册:2012-12-15
得分:5 
copy constructor
从引用的类中调出X赋值给新类中的X
2012-12-16 18:19
huang1938120
Rank: 2
等 级:论坛游民
帖 子:51
专家分:41
注 册:2012-10-30
得分:5 
取经的 抱歉打扰了
2012-12-17 09:33
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
以下是引用疯子傻了在2012-12-11 20:29:55的发言:

把a.x赋给新对象的x 中的新对象x是在哪声明的呢

当前对象自己有个 x,形参 a 有个 x,把 a 的 x 赋到当前对象的 x 上不是很有道理的一件事嘛。

现在是在定义类的成员函数,声明在类的定义里面。这是成员函数访问数据成员的常见形式。
2012-12-19 10:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390648-1-1.html




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

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