gpt4 book ai didi

c++ - 非常量引用类成员

转载 作者:太空狗 更新时间:2023-10-29 23:18:53 26 4
gpt4 key购买 nike

我有以下类(class):

class BaseStyle {
private:
Style *style;
public:
BaseStyle(Style& theStyle);
const Style& getStyle() const;
void setStyle(const Style& theStyle);
};

我试图将在构造函数中传递的引用存储在 style 中,并在调用 setStyle() 时更改该属性。我希望能够拥有属性 Style& style,但是,然后我 read c++ 引用属性在初始化后不能更改。现在我认为最好将引用存储在指针中,但我该怎么做呢?我不能只做 style = theStyle,对吧?

最佳答案

你应该像这样实现你的类:

class BaseStyle
{
private:
Style *style;
public:
BaseStyle(Style &theStyle) { style = &theStyle; }
const Style &getStyle() const { return(*style); }
void setStyle(Style &theStyle) { style = &theStyle; }
};

说明:引用是作为指针实现的。这在文档中没有明确说明,因为没有编译器做任何与此不同的事情。区别只是语法上的。这意味着,通过编写 &theStyle,您可以获得可以分配给指针的对象的地址。

获取引用引用的对象的地址并将其分配给指针没有什么不好。

关于c++ - 非常量引用类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com