gpt4 book ai didi

C++:如何定义具有泛型返回类型的虚函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:18 26 4
gpt4 key购买 nike

我正在尝试用 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/

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