c++ - 如何为对象的向量使用setter
问题描述
std::vector<Game*> games;
我有以下二传手:
void Instructor::setGames(const std::vector<Game *> &value)
{
games = value;
}
我正在尝试像这样使用它:
Game g1, g2, g3;
std::vector <Game> gameSet;
gameSet.push_back(g1);
gameSet.push_back(g2);
gameSet.push_back(g3);
i.setGames(&gameSet);
但我不断收到此错误:
error: no matching function for call to ‘Instructor::setGames(std::vector<Game>*)’
i.setGames(&gameSet);
这也不起作用。
i.setGames(gameSet);
我究竟做错了什么?我想在不改变的情况下解决这个问题std::vector<Game*> games;
解决方案
鉴于您有一个Game
指针向量,这就是它将接受的对象类型,因此g1
,g2
并且g3
必须是指针:
Game *g1, *g2, *g3;
std::vector <Game*> gameSet;
g1 = new Game(); //intialize pointers
g2 = new Game();
g3 = new Game();
//...
i.setGames(gameSet);
请注意,这些天使用原始指针并不是一个真正的好习惯,最好使用智能指针,研究一下。
推荐阅读
- python-2.7 - Tensorboard callback with keras fit_generator, 'Function' has no attribute 'fetch_callbacks'
- c++ - How do I turn a motor using a digital pin in the setup() function?
- python - 在 R 中运行 TensorFlow 时发现错误的 python 架构
- python - remake window after overrideredirect(True) trouble moving after resizing
- html - Http客户端无法处理css和js
- r - R:有条件地将列表项添加到以前的列表项
- spring - 带有 Postgres ltree 扩展的 Spring JPA
- python - Python warning: plotly.graph_objs.Line is deprecated
- python-3.x - 如何改进此算法以计算字符串中字符的频率?
- data-structures - 实现 LinkedList 的最基本要求是什么?