Je suis un développeur JAVA qui essaie d'apprendre le C++, mais je ne sais pas vraiment quelle est la meilleure pratique pour les déclarations de fonctions standard.
Dans la classe :
class Clazz
{
public:
void Fun1()
{
//do something
}
}
Ou dehors :
class Clazz
{
public:
void Fun1();
}
Clazz::Fun1(){
// Do something
}
J'ai le sentiment que le second peut être moins lisible...
1 votes
Il y a en fait 3 options ici. Votre deuxième exemple pourrait avoir la définition de la fonction dans le fichier d'en-tête (mais toujours pas inlined), ou dans un fichier séparé de
.cpp
fichier.0 votes
Cette question pourrait vous aider à comprendre.
3 votes
Juste une note : déclaration est toujours à l'intérieur de la classe, mais définition est soit intérieur, soit extérieur. Le titre et le corps de la question doivent être soumis à s/declaration/definition/ Vous ne me croyez pas ? stackoverflow.com/q/1410563/1143274
1 votes
Les définitions de fonctions à l'intérieur des classes doivent être évitées. Elles sont considérées comme implicitement
inline
.0 votes
@JohnStrood donc ?
inline
n'assouplit que la règle d'une seule définition, ce qui est nécessaire si une autre unité de traduction utiliseClazz