Disons que j'ai quelque chose de classe vecteur 2D de base commeDonner une implémentation de la fonction plus d'un nom en C++
class vector2
{
int x, y;
}
ces deux valeurs pourraient être utilisées pour représenter une position et une largeur et la hauteur. Est-ce que C++ fournit une solution pour implémenter une fonction telle que vector2::getXpos()
et ensuite définir vector2::getWidth()
et l'utiliser avec la même implémentation.
Je sais que je pourrais juste faire ces deux fonctions en ligne, mais le compilateur pourrait décider de ne pas aligner ces fonctions. donc si getWidth
juste appelé getXpos
vous finiriez avec deux appels de fonction.
Un exemple plus relistic de ce que je voudrais l'utiliser pour se getLength()
et erm ... getSpan()
(penser comme un écran ici pour quand vous dites 40" tv)
Je suppose que cela être un simple cas de quelque chose comme une définition de fonction spéciale ... Je ne trouve this page mais cela sonne comme il est une caractéristique de C ... et un peu d'un hack pour travailler.
EDIT
Je ne parle pas de la mécanique de i fonctions nLigne ... Je veux basicaly faire quelque chose comme fonctionnellement
class MyClass
{
void ActaullyDoStuff();
public:
void foo(){ActaullyDoStuff();}
void bar(){ActuallyDoStuff();}
}
mais où je peux écrire quelque chose comme
class MyBetterClass
{
public:
void foo(){ /* BLOCK OF CODE */ }
void bar(){ /* DO WHAT EVER foo() DOES */ }
}
Je veux bar()
d'être une autre façon de faire juste foo()
pour que le même Le code fonctionnel peut avoir différents noms, plus appropriés selon la situation.
Êtes-vous sûr de vouloir utiliser le même type pour des postes ainsi que les dimensions, juste parce qu'ils se trouvent être * structurellement * le même? Cela me semble être une mauvaise idée. Je définirais deux types distincts. Cela rend les intentions du code client beaucoup plus claires. – fredoverflow
"Je ne pose pas de questions sur la mécanique des fonctions inline ...", peut-être pas ... mais les fonctions inline font ce que vous voulez faire ... – ronag