gpt4 book ai didi

c++ - 传递标准 vector 作为引用 : no matching function to call

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:10 25 4
gpt4 key购买 nike

我看不出我的代码有什么问题。我有一个 std::vector ,它是我类 Foo 的私有(private)成员。它没有声明为 const,即使编译器给出的错误表明如此。

(在 Foo.h)

private:
std::vector<std::string> tableBackup;

我正在调用一个函数(来自 Foo.cpp):

BackupTable(this->tableBackup);

此方法在DatabaseLoad.cpp 和.h 中:

public:
void BackupTable(std::vector<std::string> &tableBackup);

定义为:

void DatabaseLoad::BackupTable(std::vector<std::string> &tableBackup){
//whatever...
}

当我从 Foo.cpp 调用方法时出现以下错误:

No matching function for call to 'DatabaseLoad::BackupTable(const std::vector<std::basic_string<char> > &)'

有什么问题?目前正在使用 C++11,但我想这与此无关。

最佳答案

您在 DatabaseLoad 对象为 const 限定的上下文中调用 BackupTable 函数,因此编译器期望调用一个 const-reference.

如果您不打算修改 vector ,则应将函数声明为:

void BackupTable(const std::vector<std::string>& tableBackup);

关于c++ - 传递标准 vector 作为引用 : no matching function to call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525523/

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