尝试将函数从头文件转换为 cpp 文件时出现无尽的错误

问题描述 投票:0回答:1
#ifndef LibraryUser_h
#define LibraryUser_h

#include <string>
using namespace std;

class LibraryUser {
private:
    std::string name;
    std::string email;
    int idnumber;
public:
    LibraryUser(string name, string email, int idnumber);
    LibraryUser();
    void addnewuser();
    string getName();
    string getEmail();
    int getIdnumber();
    void setName(string name);
    void setEmail(string email);
    void setIdnumber(int idnumber);
};

#endif 

我的cpp

#include "LibraryUser.h"
#include <string>
#include <iostream>
using namespace std;

LibraryUser(string name, string email, int idnumber) {
    this->name = name;
    this->email = email;
    this->idnumber = idnumber;
};
void setName(string name) {
    name = name;
}
void setEmail(string email) {
    email = email;
}
void setIdnumber(int idnumber) {
    idnumber = idnumber;
}

void addnewuser() {

    string objectname;
    cout << "Enter name of object.";
    cin >> objectname;
    cout << "Enter the name of the user you would like to add:";
    cin >> name;
    cout << "Enter the email for the user.";
    cin >> email;
    cout << "Enter the idnumber for the user: ";
    cin >> idnumber;
    LibraryUser objectname(name, email, idnumber);

}

我遇到了一堆错误,即使在人工智能的帮助下,我也很难修复它。

我正在尝试使用用户输入来创建对象,但由于这是我第一次使用头文件,因此我遇到了一些问题。我收到的错误预计会出现在 cpp 文件中第五个名称之前的“)”,然后 makenewuser 函数中使用的所有变量都不会收到未声明的错误,即使构造函数初始化了所有变量。

c++ class header
1个回答
0
投票

在您的

.cpp
文件中,您需要提供您正在定义的函数的完全限定名称。例如,您的构造函数定义需要是:

LibraryUser::LibraryUser(string name, string email, int idnumber) {
    this->name = name;
    this->email = email;
    this->idnumber = idnumber;
}

其他成员函数也是如此,如

void LibraryUser::setName(string name) {
    name = name;
}

等等

© www.soinside.com 2019 - 2024. All rights reserved.