【问题标题】:vector of classes in C++C++ 中的类向量
【发布时间】:2016-12-01 19:18:27
【问题描述】:

我正在尝试使用类构造函数填充类向量,但出现编译错误:

1>c:\users\admin\documents\visual studio 2010\projects\file_io_and_main_argv\file_io_and_main_argv\file_io_argv.cpp(121): 错误 C2663:'std::vector<_ty>::push_back':2 个重载不合法 'this' 指针的转换

我在 C++ 主程序中用于 Class Player 的代码是:

const vector<Player> players;  // vector list of players

  players.push_back(Player(ID,pname,WINS,LOSSES,POSX,POSY));  //insert player into vector of players

错误就在“。”这一点上。在玩家和 push_back 之间。

【问题讨论】:

  • 删除constpush_back 在实例不变时不起作用..

标签: c++ vector


【解决方案1】:

您的players 向量被声明为const

const vector<Player> players;

const 就是这个意思:常数。你不能改变它。不能push_back(),不能erase()向量中已有的元素,不能做任何事情来改变向量的内容。

从声明中删除 const 关键字。

【讨论】:

    【解决方案2】:

    您不能修改const 向量。删除const vector&lt;Player&gt; players;中的const

    【讨论】:

    • 感谢您的回答,您是对的,由于某种原因,const 是问题所在,我找到了一个他们使用 const 的代码示例,而编译错误无助于确定...跨度>
    猜你喜欢
    • 2020-07-14
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多