gpt4 book ai didi

c++ - 我应该如何实现以派生类型作为参数的纯虚方法?

转载 作者:行者123 更新时间:2023-11-30 02:36:25 26 4
gpt4 key购买 nike

我正在用 C++ 编写程序,我来自 Java,但遇到了一些麻烦。我想要一个基本抽象类(一个 java 接口(interface)),它定义了派生类必须实现的一些方法。这种方法可以将派生类型作为参数,但在这里我发现了一个问题。如果我用基类定义它们作为基类中的参数,编译器不会将派生类型的重新定义视为覆盖,并且派生类仍然是纯虚拟的。解决这种情况的正确方法是什么?谢谢!

最佳答案

我想你想写这样的东西:

template<class T>
class Interface {
virtual void Method(T i) = 0;
};

class Implement : public Interface<Implement> {
virtual void Method(Implement i) override {

}
};

这叫做 CRTP .

关于c++ - 我应该如何实现以派生类型作为参数的纯虚方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799313/

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