【发布时间】:2019-05-02 15:07:01
【问题描述】:
我通过 Dev C++ 使用 getter 和 setter 以及构造函数开发了 C++ 应用程序。我正在通过构造函数发送天、小时、分钟、秒变量并想打印它们。
但是当我运行和编译时出现错误,例如“源文件未编译”。
我该如何解决这个问题?我已经删除了 collect2.exe 文件,但问题仍然存在。
Sinif.CPP
#include "Sinif.h"
#include <iostream>
#include <iomanip>
using namespace std;
Sinif::Sinif(int d,int h, int m, int s) {
day=d;
hour = h;
minute = m;
second = s;
}
int Sinif::getDay() const {
return day;
}
void Sinif::setDay(int d) {
day = d;
}
int Sinif::getHour() const {
return hour;
}
void Sinif::setHour(int h) {
hour = h;
}
int Sinif::getMinute() const {
return minute;
}
void Sinif::setMinute(int m) {
minute = m;
}
int Sinif::getSecond() const {
return second;
}
void Sinif::setSecond(int s) {
second = s;
}
void Time::setTime(int d,int h, int m, int s) {
day=d;
hour = h;
minute = m;
second = s;
}
void Time::print() const {
cout << setfill('0');
cout << setw(2) << day
cout <<":"<< setw(2) << hour
<< ":" << setw(2) << minute
<< ":" << setw(2) << second << endl;
}
Sinif.h
#ifndef TIME_H
#define TIME_H
class Sinif {
private:
int day;
int hour;
int minute;
int second;
public:
Sinif(int d=0,int h = 0, int m = 0, int s = 0);
int getDay() const; // public getter for private data member hour
void setDay(int d);
int getHour() const; // public getter for private data member hour
void setHour(int h); // public setter for private data member hour
int getMinute() const; // public getter for private data member minute
void setMinute(int m); // public setter for private data member minute
int getSecond() const; // public getter for private data member second
void setSecond(int s); // public setter for private data member second
void setTime(int d,int h, int m, int s); // set hour, minute and second
void print() const; // Print a description of this instance in "hh:mm:ss"
}; // need to terminate the class declaration with a semicolon
#endif // end of "#ifndef" block
主要 CPP
#include <iostream>
#include "Sinif.h"
using namespace std;
int main() {
Sinif t1(25,23, 59, 59); // Test constructor
// Test all public member functions
t1.print();
t1.setDay(17);
t1.setHour(12);
t1.setMinute(30);
t1.setSecond(15);
t1.print(); // 12:30:15
cout << "Day is " << t1.getDay() << endl;
cout << "Hour is " << t1.getHour() << endl;
cout << "Minute is " << t1.getMinute() << endl;
cout << "Second is " << t1.getSecond() << endl;
Sinif t2; // Test constructor with default values for hour, minute and second
t2.print(); // 00:00:00
t2.setTime(10,1, 2, 3);
t2.print(); // 01:02:03
Sinif t3(12); // Use default values for minute and second
t3.print(); // 12:00:00
}
【问题讨论】:
-
除非您的程序被称为“collect2.exe”,否则该程序是工具链中非常重要的一部分,您绝对不应该删除它。
-
您遇到的具体错误是什么?
-
Mark 1 眼球说
Time::setTime应该是Sinif::setTime。 -
cout << setw(2) << day缺少一个 ; -
为什么要删除部分 GCC?