返回其他类对象的c++类getter中的错误
Error in C++ class getters that return objects of other class
我开始学习c++,我不能解决这个错误。我正试图实现一个名为IModeloDinamico的类,该类具有作为私有成员的另一个名为FunctionParser的类的一些对象,在fparser.h库中实现。我试图实现一些getter,但我有一些错误返回其他类的对象。下面是代码。
#//Some includes
#include "fparser.h"
class IModeloDinamico
{
private:
//Some string and double variables.
//FunctionParser variables are objects from fparser library.
FunctionParser fp1;
//...
FunctionParser fp16;
public:
// Constructor
IModeloDinamico();
//Destructor
~IModeloDinamico();
//Accesors
//Getters
//Some getters for string and double vars.
//And getters for return objects of fparser library. **Where i have the errors.**
FunctionParser GetFunctionParser1() const
{
return fp1;
};
FunctionParser GetFunctionParser2() const
{
return fp2;
};
// ...
FunctionParser GetFunctionParser16() const
{
return fp16;
};
//Setters/
// ...
//Some methods..
};
错误信息显示:
‘FunctionParser::FunctionParser(const FunctionParser&)’ is private.
此方法在fparser库中实现,并声明为该类的私有成员,但我不是调用该方法来返回该对象。
其他错误包括:
'within this context'
私有方法是复制构造函数,您调用该方法是因为您的方法返回解析器对象的副本。
FunctionParser GetFunctionParser16() const
{
return fp16; // return copy of fp16
}
复制构造函数是私有的这一事实表明该类的编写者不希望复制这些对象。所以你应该通过引用
返回const FunctionParser& GetFunctionParser16() const
{
return fp16; // return reference to fp16
}
Try
const FunctionParser& GetFunctionParser1() const { return fp1; }
您没有手动调用FunctionParser::FunctionParser(const FunctionParser&)
,但是当您通过值返回它时,需要调用它来构造一个将从getter返回的复制对象。
您可能还想为const正确性
FunctionParser& GetFunctionParser1() { return fp1; }
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 即使有 0 个错误,Getter 似乎也会使程序崩溃
- 为什么我的编译器在调用 const getter 函数时抛出"转换丢失(const)限定符"错误?
- Getter工作了,但当我将其转换为常量时返回一个错误
- Getter函数返回错误的值
- 返回其他类对象的c++类getter中的错误
- 分割错误调用SWIG生成Getter