0

Условие: "Создать класс треугольника в отдельном файле programm.h, который будет хранить в себе три значение. Реализовать в отдельном файле programm.cpp методы: 1.) конструктор, задающий начальные значения 2.) деструктор 3.) метод Change , который меняет начальные значения (но не заменяет) 4.) метод print , которые выводит значения 5.) метод result ,которые выводит периметр, площадь и максимальную высоту треугольника. В отдельном файле main.cpp закодировать программу. Привлечение пользователя не обязательно!.

Я все сделал, но компилятор выдавает ошибку "undefined reference to WinMain@16"

Помогите, я не знаю в чем проблема!!!!!!!

programm.h

class Triangle
 {
 private:
    double a;
    double b;
    double c;
 public:
    Triangle (double a, double b, double c); 
    ~Triangle(); 
    void Change (double a, double b, double c);
    void print();
    void Result();
 };

programm.cpp

    #include <iostream>
    #include "programm.h"
    using namespace std;
    Triangle::Triangle(double a, double b, double c)
    {
        if(a>0 && b>0 && c>0) 
        {
            this->a=a;
            this->b=b;
            this->c=c;
        }
        else           
        {
            this->a=1;
            this->b=1;
            this->c=1;
            cout << " Треугольник не существует, значение по умолчанию 1" << endl;
        }
    }
    Triangle::~Triangle
    {
        a=0; b=0; c=0;
        cout << " Объект ликвидирован!" << endl;
    }
   Triangle::Change(double a, double b, double c)
    {
        this->a=this->a+a;
        this->b=this->b+b;
        this->c=this->c+c;
    }
    Triangle::print()
    {
        cout << " a  = " << a << " cm " << endl;
        cout << " b  = " << b << " cm " << endl;
        cout << " c = " << c << " cm " << endl;
    }
    Triangle::Result()
    {
        double P;
        double S;
        double h1, h2, h3;
        P= a+b+c;
        cout << " Периметр " << P << " cm " << endl;
        S = (a*b)/2;
        cout << " Площадь = " << S << " cm kv. " << endl;
        h1 = (2 * S) / a;
        h2 = (2 * S) / b;
        h3 = (2 * S) / c;
        if (h1 > h2 && h1 > h3)
            cout << " Максимальная высота = " << h1 << " cm " << endl;
        else if (h2 > h1 && h2 > h3)
            cout << " Максимальная высота= " << h2 << " cm " << endl;
        else if (h3 > h1 && h3 > h2)
           cout << " Максимальная высота = " << h3 << " cm " << endl;
    }

main.cpp

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

int main()
{
   Triangle ABC(5 , 8.5 , 9.86);
    ABC.Change(1 , 1 , 1);
    ABC.print();
    ABC.Result();

    return 0;
}
  • Поиском пользовались? https://ru.stackoverflow.com/search?q=undefined+reference+to+WinMain – andreymal Nov 26 '19 at 17:44
  • Проблема у пользователя по ссылке была в том, что у него не было главной функции main , но у меня она есть – Halfpizods Nov 26 '19 at 18:10
  • @Halfpizods В чем собираете то? – Небывалый Nov 26 '19 at 19:28
  • @Halfpizods, проблема в вопросе по ссылке в том, что консольная программа компилировалась как оконная (у оконных приложений под Windows точкой входа по-умолчанию является WinMain, а не main), скорее всего та же проблема и у вас. – insolor Nov 27 '19 at 05:42

0 Answers0