1 Вопрос: Исходный файл Dev C ++ не скомпилирован

вопрос создан в Thu, May 2, 2019 12:00 AM

Я разработал приложение C ++ от Dev 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

}
    
- 2
  1. Если ваша программа не называется "collect2.exe", эта программа является очень важной частью цепочки инструментов, и вам определенно не следует ее удалять.
    2019-05-02 15: 11: 44Z
  2. Какую именно ошибку вы получаете?
    2019-05-02 15: 12: 30Z
  3. Глазное яблоко Марка 1 говорит, что Time::setTime, вероятно, должно быть Sinif::setTime.
    2019-05-02 15: 13: 06Z
  4. cout << setw(2) << day отсутствует;
    2019-05-02 15: 14: 47Z
  5. Почему вы удалили часть GCC?
    2019-05-02 15: 25: 39Z
1 ответ                              1                         

Что вы должны делать

Прочитайте полный вывод сборки, который расскажет вам, что не так и где.

В этом случае это, вероятно, связано с такими вещами:

void Time::setTime(int d,int h, int m, int s) {
   day=d;
   hour = h;
   minute = m;
   second = s;
}

(Ваш класс называется Sinif, а не Time.)

… и это:

cout << setw(2) << day 

(без завершающей точки с запятой.)

После устранения этих проблем ваша программа компилируется и запускается (что выглядит как ожидаемый результат).

Чего не следует делать

Удалите часть GCC, например collect2.exe. Возможно, вам сейчас придется переустановить свою цепочку инструментов.

    
2
2019-05-02 15: 26: 57Z
источник размещен Вот