使用 'override' 关键字
Using 'override' keyword
我的代码出现以下错误:
error C3668: 'B::getData': method with override specifier 'override' did not override any base class methods
#include<iostream>
#include <tuple>
using namespace std;
class A {
public:
int a;
int getData() {
return a;
}
};
class B : public A {
public:
int b;
B() {
b = 100;
}
int getData() override {
return b;
}
};
int main() {
B b;
cout << b.getData() << endl;
}
为什么会出现错误,我该如何解决??
您在 A
中的原始函数必须是 virtual
才能成为 override
d。
class A {
public:
int a;
virtual int getData() {
return a;
}
};
关于 override
的更多信息是 here. And related: info on virtual
and final
我的代码出现以下错误:
error C3668: 'B::getData': method with override specifier 'override' did not override any base class methods
#include<iostream>
#include <tuple>
using namespace std;
class A {
public:
int a;
int getData() {
return a;
}
};
class B : public A {
public:
int b;
B() {
b = 100;
}
int getData() override {
return b;
}
};
int main() {
B b;
cout << b.getData() << endl;
}
为什么会出现错误,我该如何解决??
您在 A
中的原始函数必须是 virtual
才能成为 override
d。
class A {
public:
int a;
virtual int getData() {
return a;
}
};
关于 override
的更多信息是 here. And related: info on virtual
and final