【问题标题】:C++ Calling a function with a vector as a parameter in main [closed]C++在main中调用带有向量作为参数的函数[关闭]
【发布时间】:2016-11-30 09:41:58
【问题描述】:

我有一个 myVector 类:

class myVector {

public:

    void populateVector();
    void showMenu(vector <myVector> const &vec_first);

private:

    vector <myVector> &vec_first;

}

我还没有填充我的向量,但我想在 showMenu() 函数中使用该向量,但是,当我尝试调用 showMenu() 函数时,我的 main 出现了问题。

int main() {
    myVector obj;
    obj.showMenu(vector <myVector> const &vec_first);
}

代码块一直在说:

main.cpp|33|error: 'const' 之前的预期主表达式

【问题讨论】:

  • 您有vector&lt;MyVector&gt; 作为myVector 的成员吗?什么?请问可以使用合理的类型名称吗?
  • 看起来您正试图在函数参数列表的中间声明一个变量。这是不允许的。
  • 获取有关 C++ 的书籍或教程
  • 你混淆了很多东西。你想完成什么?你这样做的目的是什么??
  • 对不起,意思是vector&lt;myVector&gt; vec_first

标签: c++ vector parameter-passing


【解决方案1】:

您将函数声明与调用它混淆了。你需要

int main() {
    myVector obj;
    vector<myVector> vec;
    obj.showMenu(vec);
}

或者类似的东西

【讨论】:

  • 类型不匹配。
  • 哎呀 - 已修复 ....
【解决方案2】:

我还没有填充我的向量,但我想在 showMenu() 函数中使用该向量,但是,当我尝试调用 showMenu() 函数时,我的 main 出现了问题。

不要通过showMenu 传递向量(或任何东西);它已经可以访问同一个类的成员向量。

如果您确实想要传递一个函数参数,重复参数的原始声明将不是这样做的方法。只应指定其名称。这将是:

obj.showMenu(obj.vec_first);

…如果vec_first 不是private

看来您需要回到基础并阅读 C++ 书籍的最初章节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2021-12-31
    • 2022-06-16
    • 2016-03-24
    • 2021-10-24
    • 2020-10-26
    • 2021-12-06
    相关资源
    最近更新 更多