gpt4 book ai didi

c++ - 在 const 成员函数中返回 C++ 引用

转载 作者:太空狗 更新时间:2023-10-29 21:08:31 26 4
gpt4 key购买 nike

A 有一个类层次结构,看起来像这样:

class AbstractDataType { 
public:
virtual int getInfo() = 0;
};

class DataType: public AbstractDataType {
public:
virtual int getInfo() { };
};

class Accessor {
DataType data;
public:
const AbstractDataType& getData() const {
return(data);
}
};

嗯,GCC 4.4 报告:

在成员函数‘const AbstractDataType& Accessor::getData() const’中:错误:从类型为“const DataType”的表达式对类型为“const AbstractDataType&”的引用的初始化无效

我哪里出错了 - 在这种情况下我必须使用指针吗?

[编辑 - 固定分号]

最佳答案

不,您不需要使用指针。在这种情况下,您可以同样使用引用或指针。

您粘贴的代码应该可以在 g++ 4.4 和 Visual Studio 2010 中正常工作....除了类声明后缺少分号。

我猜你这里的代码可能与你正在编译的代码不完全匹配。

特别是您是否不小心在代码中这样做了?

class DataType /*: public AbstractDataType*/ { 
public:
virtual int getInfo() { };
};

关于c++ - 在 const 成员函数中返回 C++ 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862284/

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