我想知道如何在另一个对象中存储一个对象的引用,并将该引用设置为私有(private)属性。示例(伪代码):
class foo
{
public:
int size;
foo( int );
};
foo::foo( int s ) : size( s ) {}
class bar
{
public:
bar( foo& );
private:
foo fooreference;
};
bar::bar( foo & reference )
{
fooreference = reference;
}
foo firstclass( 1 );
bar secondclass( firstclass );
如您所见,我只想能够将 foo 的引用存储在此 bar 类中。我知道如何简单地将它带入一个方法并仅在该方法的范围内使用它,但在这里我想将它设置为私有(private)属性。我该怎么做呢?
最佳答案
与您定义和使用任何 类成员的方式相同。
确保您使用_member-initialiser初始化引用成员,而不是事后在构造函数主体中为其赋值;回想一下,引用必须被初始化并且以后不能被反弹。
class foo
{
public:
int size;
foo( int );
};
foo::foo( int s ) : size( s ) {}
class bar
{
public:
bar(foo&);
private:
foo& fooreference;
};
bar::bar(foo& reference) : fooreference(reference)
{}
foo firstclass(1);
bar secondclass(firstclass);
关于类中的 C++ 对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449813/