Bonjour à tous,
je me remets, depuis peu, au C++ et j'aurais une petite question concernant les headers :
Supposons que je déclare une classe MyApp héritant de wxApp (wxWidgets donc) dans un *.h, de la manière suivante :
class MyApp: public wxApp
{
virtual bool OnInit();
};
Dans mes souvenirs il fallait, très logiquement, inclure "wx.h" juste avant la déclaration de MyApp pour que le compilateur sache ce qu'est wxApp.
Or, en testant ce code sous visual c++ 2010 express, il s'avère que je n'ai pas besoin d'inclure "wx.h" : ni l'IDE ni le compilateur ne bronche et le programme se génère très naturellement. Pourtant j'ai pas non plus mis de déclaration préliminaire, j'ai vraiment juste la déclaration de la classe et les classiques #ifndef...
Du coup je suis aller jeter un oeil sur d'autres code sources genre le sdk de doom 3 et autres et surprise : pareil, aucun header inclu dans les header, même si les déclaration utilisent des classes définies ailleurs.
Pourtant en reprenant mon manuel de C++, je peut lire des exemples avec des *.h incluant d'autres *.h.
Qu'est ce qui se passe ? Serait une tolérance de visual ? (apparement il charge les headers qu'on lui indique en tant que répertoire include supplémentaires, notamment pour l'autocomplétion, donc est ce qu'il vérifie aussi automatiquement les objets utilisé et fait le lien de manière transparente ? Ou est ce que c'est dans la norme, portable, etc... ?
Merci