Bonjour je suis en train d'écrire un petit projet en C++ où j'aimerais avoir des cours qui fonctionnent, j'ai écrit les interfaces et l'implémentation des classes. Ce qui me surprend, c'est que je ne peux pas avoir une classe simple sans main(), j'aimerais avoir une classe instanciée, ses méthodes peuvent être appelées, faire des choses, mais je n'en ai pas besoin (ni want) un main() dans la classe implémentation. Voici un exemple que je dans ma tête ce que je voudrais avoir:C++ classe pourquoi besoin de main?
fichier animal.h:
class animal
{
public:
animal();
~animal();
public:
int method1(int arg1);
private:
int var1;
};
fichier
animal.cpp:
#include "animal.h"
animal::animal(){...}
animal::~animal(){...}
int animal::method1(int arg1){return var1;}
}
Et je voudrais pour appeler la classe des animaux forme un autre fichier et le faire fonctionner, quelque chose comme ceci: fichier app.cpp:
#include <neededlib>
#include "animal.h"
int main()
{
animal dog;
cout << dog.method1(42);
return 0;
}
Mais compilateur me donne
/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../crt1.o: In function _start:
"(.text+0x18): undefined reference to `main`"
collect2: ld returned 1 exit status
pour animal.cpp, mais je ne pas besoin principal là, ou ai-je besoin?
Où est-ce que je me trompe?
Il serait utile de poster le message. Souvent, le diable est dans les détails. –
"Ne pas oublier de supprimer le chien;!" Il n'y a pas besoin de cela parce que ce n'est pas un pointeur, en fait, la suppression de chien devrait normalement dans ce cas entraîner une erreur. –