C ++名称后跟'::'必须是类或名称空间名称

时间:2019-01-26 23:41:23

标签: c++ class methods

所以我搜索了一些解决方案,但没有找到任何解决方案。我想在其cpp文件中定义我的方法,但是即使包括它们的.h文件,编译器也无法识别我的任何类及其属性。这是我的代码的一部分:

 #include "Table.h"
#include <iostream>

using namespace std;

Table Table::Table()
{
    capacite_ = MAXCAP;
    id_ = -1;
    nbPlaces_ = 1;
    occupee_ = false;
    commande_ = MAXCAP;
}
Table Table::Table(int id, int nbPlaces)
{
    id_ = id;
    nbPlaces_ = nbPlaces;
}
int Table::getId()
{
    return id_;
}

希望你能帮助我,谢谢

2 个答案:

答案 0 :(得分:8)

构造函数没有返回类型:

struct Table {
  Table();
};

Table::Table() {
  // ...
}

答案 1 :(得分:-1)

我假设您的头文件就是这样


#define MAXCAP (100)
class Table {

public:
  Table();
  Table(int id, int nbPlaces);
  ~Table() {}

  int getId();

private:
  int nbPlaces_;
  int id_;
  bool occupee_;
  int commande_;
  int capacite_;
};

在您的cpp文件中尝试以下代码,这应该可以解决问题

#include "Table.h"
#include <iostream>

using namespace std;

Table::Table() {
  capacite_ = MAXCAP;
  id_ = -1;
  nbPlaces_ = 1;
  occupee_ = false;
  commande_ = MAXCAP;
}

Table::Table(int id, int nbPlaces) {
  id_ = id;
  nbPlaces_ = nbPlaces;
}

int Table::getId() { return id_; }

int main() { return 0; }