gpt4 book ai didi

c++ - 纯虚函数可以作为Variadic函数模板吗?

转载 作者:行者123 更新时间:2023-12-02 02:18:40 30 4
gpt4 key购买 nike

我可以写一个这样的类吗:

class Base {
template <typename...Args>
virtual double calculate(const Args&...args) = 0;
};

然后我想编写这样的派生类:

class Derived1 : public Base {
double calculate(int a) {
}
};

class Derived2 : public Base {
double calculate(int a, int c) {
}
};

如果这是不可能的,有什么方法可以实现这一点吗?

最佳答案

没有。虚函数根本不能是模板。这适用于任何模板(可变参数或非可变参数)以及所有虚拟函数 - 纯函数或非纯函数。

如果你仔细想想,这是有道理的。模板不是函数,它是编译器在调用函数时生成函数的模板。另一方面,虚函数必须是真实函数,编译器通过函数指针调用该函数以实现多态行为。

关于c++ - 纯虚函数可以作为Variadic函数模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66782291/

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