I'm currently learning OOP in C++, but I keep running into a "undefined reference to 'WinMain'" error. I'm not sure what I did wrong, and if it is the header file or cpp file. Please help.
Error message:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o): in function 'main':
C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to 'WinMain'
collect2.exe: error: ld returned 1 exit status
header file:
#include <iostream>
#include <string>
using namespace std;
#pragma once
enum COLOR {Green, Blue, White, Black, Brown};
class Animal{
private:
string _name;
COLOR _color;
public:
Animal();
Animal(string n, COLOR c);
~Animal();
virtual void speak() const;
virtual void move() = 0;
string getName();
COLOR getColor();
};
class Mammal: public Animal{
public:
Mammal();
Mammal(string n, COLOR c);
~Mammal();
virtual void eat() const;
virtual void move() const;
};
.cpp file:
#include <iostream>
#include <string>
#include "Animal.h"
using namespace std;
/*___________________Animal class_______________________*/
Animal::Animal() : _name("Unknown"){
cout << "constructing Animal object "<< _name << endl;
}
Animal::Animal(string n, COLOR c) : _name(n), _color(c){
cout << "constructing Animal object "<< _name << endl;
}
Animal::~Animal(){
cout << "destructing Animal object "<< _name << endl;
}
void Animal::speak() const{
cout << "Animal speaks "<< endl;
}
string Animal::getName(){
return _name;
}
COLOR Animal::getColor(){
return _color;
}
/*___________________Mammal class______________________*/
Mammal::Mammal() : Animal(){
cout << "constructing Mammal object"<< Mammal::getName() << endl;
}
Mammal::Mammal(string n, COLOR c) : Animal(n, c){
cout << "constructing Mammal object"<< Mammal::getName() << endl;
}
Mammal::~Mammal(){
cout << "destructing Mammal object "<< Mammal::getName() << endl;
}
void Mammal::eat() const{
cout << "Mammal eats"<< endl;
}
void Mammal::move() const{
cout << "Mammal moves" << endl;
}