【问题标题】:Working with classes [Error] ld returned 1 exit status使用类 [Error] ld 返回 1 个退出状态
【发布时间】:2018-02-08 00:28:32
【问题描述】:

我尝试搜索此错误的答案并尝试了建议的修复方法,但没有任何帮助,因此我寻求帮助。我不断收到 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; 
}

顺便说一句:这是我第一个与使用类相关的项目,可能有更简单的方法可以做到这一点,但这是我能想到的。

【问题讨论】:

  • 我们可以看看你的主要功能吗?
  • 完整的错误是什么?
  • 我将用主要编辑帖子

标签: c++ class constructor accessor mutators


【解决方案1】:

您忘记实现默认构造函数(在 main 中调用)。将此添加到您的 .cpp:

Record::Record() : name(), id(0), rate(0), hours(0) { }

【讨论】:

    【解决方案2】:

    Dev C++ IDE 允许您在不实现的情况下调用默认构造函数。问题是由于调用而发生的,因为您没有调用默认构造函数或其他构造函数。实施是另一回事。主要你只需要

    Record employee();
    Record employee1("temp",1,12.2,43.4);
    

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      • 2017-08-10
      • 2013-08-11
      • 2014-09-03
      相关资源
      最近更新 更多