gpt4 book ai didi

C++。为什么我不能使用特征类实现接口(interface)?

转载 作者:行者123 更新时间:2023-11-28 05:39:48 25 4
gpt4 key购买 nike

所以我想用一个trait类来实现我的契约类,可以吗?因为我在编译以下代码时遇到了一些错误:

代码:

class MyContract {
public:
virtual void foo()=0;
};

class TraitClass {
public:
void foo()
{
Serial.println("hello");
}
};

class MyClass : public virtual MyContract, public TraitClass {
// MyClass stuff here.
};

void setup()
{
MyClass* myClass = new MyClass();
myClass->foo();
}

最佳答案

MyClass 没有实现在 MyContract 父类(super class)中声明的纯虚方法。仅仅因为它也继承自 TraitClass 并不意味着 TraitClassfoo() 将要实现它。

你需要连接点:

class MyClass : public virtual MyContract, public TraitClass {


void foo() override
{
TraitClass::foo();
}
};

关于C++。为什么我不能使用特征类实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37381320/

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