l'appel des fonctions de membre dans une autre fonction membre de la même classe en C++, objective-C
De considérer les éléments suivants:
class A{
//data members
void foo()
{
bar();//is this possible? or should you say this->bar() note that bar is not static
}
void bar()
{
}
}//end of class A
Comment appeler des fonctions de membre dans un autre? Et comment ne statique fonctions sur l'utilisation de 'cette'.
Devrait des fonctions peuvent être appelées sur un objet?
OriginalL'auteur Namratha | 2011-02-08
Vous devez vous connecter pour publier un commentaire.
Nawaz est correcte: "il" est implicite. La seule exception est si foo ont une fonction statique, parce que dans les fonctions statiques il n'y a pas de "il". Dans ce cas, vous ne pouvez pas utiliser la barre() si() est aussi une fonction statique, et vous ne pouvez pas utiliser this->bar ().
using
déclaration, mais l'affiche clairement les choses les plus simples de s'inquiéter.Pourriez-vous donner des précisions sur ces étranges affaires?
Je n'ai jamais accordé beaucoup d'attention - c'est plus une de ces choses que vous venez d'apprendre à reconnaître et à résoudre lorsque le compilateur se plaint plutôt que de se souvenir de la question précise, mais à partir de la mémoire vague: si la classe dérivée est une fonction nommée x() basé sur un modèle x()dans la classe de base ne sera pas introduit dans le champ d'application sauf sur demande explicite avec
using
.OriginalL'auteur Ens
this
est implicite. Donc les deux sont équivalents. Vous pouvez utiliser n'importe quel d'entre eux. Mais je pense, si justebar()
est assez, alors pourquoi utiliserthis->bar()
?Utilisation
this
seulement quand il y a une certaine ambiguïté, sinon utilisez le plus simple!N'êtes-vous pas de vous répéter? N'ai-je pas dire que les deux sont équivalents? Pourquoi ne pas vous écrire un peu de code et de voir vous-même si
bar()
est appelé ou pas?Non, parce que votre réponse n'est pas claire. Vous n'avez pas répondu à ma question concernant le mot-clé static et lorsque les fonctions doivent être appelées sur un objet.
OriginalL'auteur Nawaz