错误:'int'之前的预期unqualified-id

时间:2015-12-03 04:36:15

标签: c++ compilation int

当我尝试编译代码时,我收到以下错误。我已经阅读了那些得到同样错误的人的其他问题,但没有一个答案与我有关。

user.cpp:15:7: error: expected unqualified-id before ‘int’
  User(int user_id, string user_name, int user_year, int user_zip)
       ^
user.cpp:15:7: error: expected ‘)’ before ‘int’

任何帮助都将不胜感激。

user.cpp:

#include "user.h"

using namespace std;

User(int user_id, string user_name, int user_year, int user_zip)
{
   id = user_id;
   name = user_name;
   year = user_year;
   zip = user_zip;
   friends = {};
}

~User()
{

}

void User::add_friend(int id)
{
   friends.push_back(id);
}

void User::delete_friend(int id)
{
   for (int i = 0; i < friends.size();++i)
   {
      if (friends[i] == id)
      {
         friends.erase(vec.begin() + i);
      }
   }
}

int User::getID()
{
   return id;
}

string User::getName()
{
   return name;
}

int User::getYear()
{
   return year;
}

int User::getZip()
{
   return zip;
}

vector<int>* User::getFriends()
{
   return &friends;
}

user.h:

#ifndef USER_H
#define USER_H
#include <string>
#include <vector>

class User {

 public:

    User(int user_id, std::string user_name, int user_year, int user_zip);
    ~User();
    void add_friend(int id);
    void delete_friend(int id);
    int getID();
    std::string getName();
    int getYear();
    int getZip();
    std::vector<int>* getFriends();

 private:

    int id;
    std::string name;
    int year;
    int zip;
    std::vector<int> friends;

};

#endif

3 个答案:

答案 0 :(得分:2)

这一行:

User(int user_id, string user_name, int user_year, int user_zip)

不是User的构造函数的定义,而是User对象的实例化,因此它需要传递给构造函数的参数列表,而int是不是可以传递的有效标识符。

定义构造函数的正确方法是:

User::User(int user_id, string user_name, int user_year, int user_zip)

同样,对于析构函数:

User::~User()

答案 1 :(得分:1)

应该是

User::User(int user_id, std::string user_name, int user_year, int user_zip)

User::~User()

答案 2 :(得分:1)

请尝试以下行:

public abstract int getXX();