问题处理缺点引用另一个类中的类

problem handling cons ref of a class within another

本文关键字:另一个 引用 处理 缺点 问题      更新时间:2023-10-16

我有两个类

//class A is a kind of config-class which have configuration details 
//for class B
class A{
//....
};
class B{
public:
B(A const& _a)
:a(_a){}
private:
A const& a;
};

到目前为止,一切都很好。

现在我想要的是一个B::configure(A const& _a)函数,以便我可以动态地将configuration class A的引用传递给class B,该引用应分配给成员变量a。 但是我无法更改成员变量B::a因为它是const&

有什么解决方法?

我认为@Seth卡内基的方法更好,我应该使用一个指针来class A内部class B,这样:

 class B{
    public:
    B(A const& _a)
    :a(_a){}
    configure(A const& _a)
    { a = &_a; }    
    private:
    A const* a;
    };
初始化

引用后,无论引用是否const,都无法更改引用。const只是阻止您对引用引用的变量进行更改。因此,要在构造实例后更改变量,您必须使用指针而不是引用。

你的语法相当不清楚,告诉我我是否误解了这个问题。