我正在尝试用 C++ 定义一个基类,它具有由子类实现的纯虚方法。
我想在基类中为基本类型定义setter和getter函数,但我希望派生类能够确定getter和setter的基本类型。例如我的基类看起来像这样:
class Value
{
public:
Value();
template <class T>;
virtual T getValue() = 0;
virtual void setValue(T val) = 0;
}
我的子类看起来像这样:
class IntValue : public Value
{
public:
IntValue();
template <class T>
T getValue() {return _val};
void setValue(T val) {_val = val};
private:
int _val;
}
当然上面的代码是行不通的。关于如何实现这一目标的任何想法?提前致谢。
最佳答案
如果我正确理解了您的问题,请将您的代码重写为
template <class T>
class Value
{
public:
Value();
virtual T getValue() = 0;
virtual void setValue(T val) = 0;
};
class IntValue : public Value<int>
{
public:
IntValue();
int getValue() {return _val;}
void setValue(int val) {_val = val;}
private:
int _val;
};
应该可以
关于C++:如何定义具有泛型返回类型的虚函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820854/