首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于对象自身引用的初级有关问题

2012-03-16 
关于对象自身引用的初级问题classA{intxA&a}这种类的几个构造函数该怎么写,特别是默认的构造函数A()怎

关于对象自身引用的初级问题
class   A   {
        int   x;
        A   &a;
};

这种类的几个构造函数该怎么写,特别是默认的构造函数A()怎么写。
A(){};//总编译错:uninitialized   reference   member

A(int   xx,   A   &aa):   x(xx),   a(aa){};
//这么写的话,aa要怎么传参呢(怎么构造实参aa)?

实在糊涂,   C++   primer   4th   可以用对象自身引用,   可是我不会些构造函数!

[解决办法]
可以是一回事,有什么实际用途又是一回事。
自己引用自己没有任何实际用途。不要这么做!
[解决办法]
class A {
int x;
A &a;

public :
A():a(*this){}
A(int x, A& aa):x(x),a(aa){}
};


[解决办法]
void main()
{

A a1;
A a2(1, a1);

}
[解决办法]
A():a(*this){}

使用初始化成员列表即可。
[解决办法]
这么做的目的是?
就是随便写写的么??

考虑一下代码的“实用性”
[解决办法]
星辰老大 又跟我抢分 :(
[解决办法]
class A{
static A& a;
public:
A(){};
...
};
类引用自身须是static方式,目的取消类的基类独立性,禁止派生类。
典型的设计有Time类。
非静态引用没有实际意义。

[解决办法]
修整一下,是防止类的抽象化
[解决办法]
static方式是不是也可以当作singleton的实现?

热点排行