gpt4 book ai didi

c++ - 解决不可能重载无参数函数的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:03 24 4
gpt4 key购买 nike

我有一个关于在从同一基类继承两个不同类的上下文中重载虚函数的问题,它们都需要相同的函数,但是对于不同的数据类型 + 该函数没有参数,所以显然不能重载。

例子:

class Base {

virtual int get_member(){};
virtual char get_member(){};

};

class Derived1: public Base {

int get_member(){return member;}

private:

int member = 0;

};

class Derived2: public Base {

char get_member(){return member;}

private:

char member = 'a';
}

这不编译,我有点明白为什么,但不是真的。但我的实际问题是一个概念性问题,即如何处理这样的问题而不是,因为重载不起作用。

最佳答案

你可以使用类似 Boost.Any 的东西:

#include <boost/any.hpp>
class Base {
public:
virtual ~Base() {}
boost::any getValue() { return m_value; }
private:
boost::any m_value;
};

// for derived classes, you really do not need a new getValue()

关于c++ - 解决不可能重载无参数函数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213300/

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