使用 类 [错误] ld 返回 1 退出状态
Working with classes [Error] ld returned 1 exit status
我尝试搜索此错误的答案并尝试了建议的修复方法,但无济于事,因此我正在寻求帮助。我不断收到 id 返回 1 退出状态错误。我正在使用 Dev-C++ 作为 IDE。
这是我的头文件:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Record
{
private:
string name;
int id;
double rate;
double hours;
public:
Record();
Record (string n, int empid, double hourlyRate, double hoursWorked);
// constructor
void read_data_from_file();
double calculate_wage();
void print_data();
/* SETTERS AND GETTERS */
void set_name (string n);
string get_name();
void set_id (int empid);
int get_id();
void set_rate (double hourlyRate);
double get_rate();
void set_hoursWorked(double hoursWorked);
double get_hoursWorked();
/* END OF SETTERS AND GETTERS */
};
这是我的 Record.cpp
#include "Record.h"
Record::Record(string n, int empid, double hourlyRate, double hoursWorked)
{
name = n;
empid = id;
hourlyRate = rate;
hoursWorked = hours;
}
//
void Record::set_name(string n)
{
name = n;
}
string Record::get_name()
{
return name;
}
//
void Record::set_id(int empid)
{
id = empid;
}
int Record::get_id()
{
return id;
}
//
void Record::set_rate(double hourlyRate)
{
rate = hourlyRate;
}
double Record::get_rate()
{
return rate;
}
//
void Record::set_hoursWorked(double hoursWorked)
{
hours = hoursWorked;
}
double Record::get_hoursWorked()
{
return hours;
}
//
当然,我有一个 int main() 函数。
#include "Record.h"
int main()
{
Record employee;
ifstream myFile;
return 0;
}
附带说明:这是我第一个与使用 class 有关的项目,可能有更简单的方法,但这是我能想到的。
您忘记实现默认构造函数(您在 main 中调用)。将此添加到您的 .cpp:
Record::Record() : name(), id(0), rate(0), hours(0) { }
Dev C++ IDE 允许您在不执行的情况下调用默认构造函数。问题是由于调用而发生的,因为您没有调用默认构造函数或其他构造函数。实施是另一回事。总的来说,你只需要
Record employee();
Record employee1("temp",1,12.2,43.4);
我尝试搜索此错误的答案并尝试了建议的修复方法,但无济于事,因此我正在寻求帮助。我不断收到 id 返回 1 退出状态错误。我正在使用 Dev-C++ 作为 IDE。
这是我的头文件:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Record
{
private:
string name;
int id;
double rate;
double hours;
public:
Record();
Record (string n, int empid, double hourlyRate, double hoursWorked);
// constructor
void read_data_from_file();
double calculate_wage();
void print_data();
/* SETTERS AND GETTERS */
void set_name (string n);
string get_name();
void set_id (int empid);
int get_id();
void set_rate (double hourlyRate);
double get_rate();
void set_hoursWorked(double hoursWorked);
double get_hoursWorked();
/* END OF SETTERS AND GETTERS */
};
这是我的 Record.cpp
#include "Record.h"
Record::Record(string n, int empid, double hourlyRate, double hoursWorked)
{
name = n;
empid = id;
hourlyRate = rate;
hoursWorked = hours;
}
//
void Record::set_name(string n)
{
name = n;
}
string Record::get_name()
{
return name;
}
//
void Record::set_id(int empid)
{
id = empid;
}
int Record::get_id()
{
return id;
}
//
void Record::set_rate(double hourlyRate)
{
rate = hourlyRate;
}
double Record::get_rate()
{
return rate;
}
//
void Record::set_hoursWorked(double hoursWorked)
{
hours = hoursWorked;
}
double Record::get_hoursWorked()
{
return hours;
}
//
当然,我有一个 int main() 函数。
#include "Record.h"
int main()
{
Record employee;
ifstream myFile;
return 0;
}
附带说明:这是我第一个与使用 class 有关的项目,可能有更简单的方法,但这是我能想到的。
您忘记实现默认构造函数(您在 main 中调用)。将此添加到您的 .cpp:
Record::Record() : name(), id(0), rate(0), hours(0) { }
Dev C++ IDE 允许您在不执行的情况下调用默认构造函数。问题是由于调用而发生的,因为您没有调用默认构造函数或其他构造函数。实施是另一回事。总的来说,你只需要
Record employee();
Record employee1("temp",1,12.2,43.4);