C++向量和错误"没有重载函数的实例"

use*_*920 0 c++ vector

我已经定义了一个简单的类

#pragma once
#include "aSuit.h";
class Card
{
private:
    aSuit theSuit;
public:
    Card(void);
    ~Card(void);
    aSuit getSuit();
    void setSuit(aSuit theSuit);
};
Run Code Online (Sandbox Code Playgroud)

然后我定义了一个向量

vector<Card> theCards;
Run Code Online (Sandbox Code Playgroud)

然后我想推开一张卡片

theCards.push_back(new Card());
Run Code Online (Sandbox Code Playgroud)

我去编译错误"没有重载函数的实例".

vector.push_back使用字符串向量,但不使用我定义的类.我正在使用Visual C++ 2010.请帮助.

Rob*_*obᵩ 7

vector<Card> theCards;
Run Code Online (Sandbox Code Playgroud)

这会创建一个矢量Card.

theCards.push_back(new Card());
Run Code Online (Sandbox Code Playgroud)

这假设你有一个"指向Card" 的向量.

A"指针Card"和" Card"是不是一回事.你的意思是说:

theCards.push_back(Card());
Run Code Online (Sandbox Code Playgroud)

  • 或者更简单,`theCards.emplace_back();`,或`theCards.resize(theCards.size()+ 1);`. (3认同)