当我尝试编译代码时,我收到以下错误。我已经阅读了那些得到同样错误的人的其他问题,但没有一个答案与我有关。
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
答案 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();