Existe-t-il un moyen d'utiliser la résolution de portée de classe "bloc" en C++ afin que je n'aie pas à écrire le même code pour chaque fonction du fichier d'implémentation de ma classe. Je trouve extrêmement répétitif d'écrire le même nom de classe et l'opérateur de résolution d'étendue binaire (Classname: :) lors de la définition d'une fonction en dehors du fichier d'en-tête en C++.Opérateur et classes de résolution d'oscilloscope binaire C++
En Objective-C, j'ai seulement besoin d'inclure des fonctions dans le bloc @ implementation/@ end.
Objective-C Exemple:
// Buttons.h
@interface Buttons : UIView {
NSMutableArray *buttonArray;
}
- (int)getNumberButtons;
// Buttons.m
#import "Buttons.h"
@implementation
- (int)getNumberButtons
{
return [buttonArray count];
}
@end // End implemenation
C++ Exemple
// Buttons.h
class Buttons {
public:
int getNumberOfButtons() const;
protected:
std::vector<Button> buttons;
};
// Buttons.cpp
#include "Buttons.h"
int Buttons::getNumberOfButtons() const {
return buttons.size();
}
N'est-ce pas ce que vise Objective-C++? Vous laisser utiliser le code C++ dans les programmes Objective C? –
De toute façon, le chemin C++ n'est pas plus court. À 21 caractères '@implementation @end ' Vous avez besoin de quatre méthodes sur une classe avec un nom de longueur de 4 caractères avant que C++ devienne plus onéreux à taper. –
@Mike Je ne pense pas que vous compreniez la question, il ne s'agit pas d'utiliser le code C++ dans Objective-C. J'aime Objective-C parce que j'ai moins de code à écrire. J'utilise à la fois Objective-C/C++ dans mon projet actuel, et je suis juste frustré par le nombre d'erreurs que je rencontre dans le même code standard. –