gpt4 book ai didi

c++ - proto c++ 实现 - "marked ‘override’,但不会覆盖“错误

转载 作者:太空狗 更新时间:2023-10-29 21:32:16 32 4
gpt4 key购买 nike

// api_internal.proto
service InvoiceTemplateMatcher {
rpc Process(InvoiceFilePath) returns (UploadStatus) {}
}

message InvoiceFilePath {
string invoice_id = 1;
string file_path = 2;
}

// template_matcher/src/main.cc
class OrkaEngineInvoiceTemplateMatcherImpl final : public InvoiceTemplateMatcher::Service {
private:
Status Process(
ServerContext* context,
orka_engine_internal::InvoiceFilePath* invoicefp,
orka_engine_internal::UploadStatus* response) override {
// do stuff
}
};

InvoiceTemplateMatcher::Service 是在编译期间从那个 .proto 文件生成的。

当我尝试编译时,出现错误

‘grpc::Status OrkaEngineInvoiceTemplateMatcherImpl::Process(grpc::ServerContext*, orka_engine_internal::InvoiceFilePath*, orka_engine_internal::UploadStatus*)’ marked ‘override’, but does not override
Status Process(ServerContext* context, orka_engine_internal::InvoiceFilePath* invoicefp, orka_engine_internal::UploadStatus* response) override {

据我所知,我的代码编写方式与 Route Guide example 中的相同.我错过了什么?

最佳答案

当函数未在基类中标记为 virtual 时,编译器会发出此类错误。

考虑以下最小示例:

class Base{
void Foo() {}
};

class Derived : Base{
void Foo() override {}
};

编译器发出错误:

error: 'void Derived::Foo()' marked 'override', but does not override
void Foo() override {}

参见 Demo

override说明符指定 virtual 函数覆盖另一个 virtual 函数。

关于c++ - proto c++ 实现 - "marked ‘override’,但不会覆盖“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573861/

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