类中的 C++ 对象引用

标签 c++ class reference object-reference

我想知道如何在另一个对象中存储一个对象的引用,并将该引用设置为私有(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/

相关文章:

c++ - OpenGL - 统一未正确传递?

c++ - C++ 中的半随机数生成

html - 在 CSS 中通过引用调用?

variables - 将 "mut"放在变量名之前和 ":"之后有什么区别?

php - 在 PHP 中,为什么我的 session 变量保留为引用?

c++ - std::vector< base_class * > 使用基类迭代但调用派生类函数

C++ 数组类定义和实现,未在范围内声明?

python - 在 python 类上覆盖 __dict__()

javascript 不同的 OOP 方法标准

c++ - 在稀疏文件中查找数据 block 的长度