获得;应为类或命名空间“0”; 在近十年没有弄错它的情况下,我决定接受C++,我在一些代码上遇到了问题,而且很难理解错误。我看到了几个相关的问题,并且。还有花几个小时研究其他的,但我还是搞不懂
main window.hpp获得;应为类或命名空间“0”; 在近十年没有弄错它的情况下,我决定接受C++,我在一些代码上遇到了问题,而且很难理解错误。我看到了几个相关的问题,并且。还有花几个小时研究其他的,但我还是搞不懂,c++,stdvector,C++,Stdvector,main window.hpp class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); std::vector<Card> cards; // Events: public slots: void shuffle(); private: Ui::Main
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
std::vector<Card> cards;
// Events:
public slots:
void shuffle();
private:
Ui::MainWindow *ui;
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {
...
// Spades
cards.push_back(Card(Suit::SPADES, Value::ACE)); // <- getting the errors here
cards.push_back(Card(Suit::SPADES, Value::TWO)); // <-
}
我想我已经知道你做错了什么:) 你应该发布的是下面的代码,而不是正确的部分。这就是我们诊断问题所需要看到的一切。你的问题与Qt等无关。真的:最小化是关键。它节省了每个人的时间。你的和我们的
#include <vector>
enum Suit { SPADES };
enum Value { ACE, TWO };
class Card {
public:
Card(Suit, Value) {}
};
int main()
{
std::vector<Card> cards;
// Correct
cards.push_back(Card(SPADES, ACE));
cards.push_back(Card(SPADES, TWO));
// Wrong since Suit and Value are not classes nor namespaces,
// they are merely enum tags.
cards.push_back(Card(Suit::SPADES, Value::ACE));
cards.push_back(Card(Suit::SPADES, Value::TWO));
return 0;
}
#包括
枚举集{黑桃};
枚举值{ACE,TWO};
班级卡{
公众:
卡片(套装、价值){}
};
int main()
{
向量卡;
//正确的
牌。推回(牌(黑桃,王牌));
扑克牌。推回(扑克牌(黑桃,两张));
//错误,因为Suit和Value既不是类也不是名称空间,
//它们只是枚举标记。
卡牌。推回(卡牌(套装:黑桃,价值:ACE));
扑克牌。推回(扑克牌(套装:黑桃,价值:两张));
返回0;
}
还感谢您提供关于真正需要什么的提示。。级别越低,需要显示的代码就越多……)哦,这就是C#enum成语(或多或少):-)。
#include <vector>
enum Suit { SPADES };
enum Value { ACE, TWO };
class Card {
public:
Card(Suit, Value) {}
};
int main()
{
std::vector<Card> cards;
// Correct
cards.push_back(Card(SPADES, ACE));
cards.push_back(Card(SPADES, TWO));
// Wrong since Suit and Value are not classes nor namespaces,
// they are merely enum tags.
cards.push_back(Card(Suit::SPADES, Value::ACE));
cards.push_back(Card(Suit::SPADES, Value::TWO));
return 0;
}