Gibt es eine Möglichkeit, die Klassenauflösung "Block" in C++ zu verwenden, damit ich nicht für jede Funktion in der Implementierungsdatei meiner Klasse den gleichen Standardcode schreiben muss.C++ Binärer Scope Resolution Operator und Klassen
Ich finde es extrem repetitiv, den gleichen Klassennamen und binären Scope-Auflösung-Operator (Classname: :) zu schreiben, wenn Sie eine Funktion außerhalb der Header-Datei in C++ definieren.
In Objective-C muss ich nur Funktionen in den @ implementation/@ end Block einfügen.
Objective-C Beispiel:
// Buttons.h
@interface Buttons : UIView {
NSMutableArray *buttonArray;
}
- (int)getNumberButtons;
// Buttons.m
#import "Buttons.h"
@implementation
- (int)getNumberButtons
{
return [buttonArray count];
}
@end // End implemenation
C++ Beispiel
// 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();
}
Ist das nicht, was Objective-C++ ist? Lassen Sie C++ - Code in Objective-C-Programmen verwenden? –
Ist das C++ sowieso nicht kürzer? Bei 21 Zeichen @implementation @end 'Sie benötigen vier Methoden für eine Klasse mit einem Namen der Länge 4 Zeichen, bevor C++ mehr Mühe beim Tippen. –
@Mike Ich glaube nicht, dass Sie die Frage verstehen, es geht nicht darum, C++ - Code in Objective-C zu verwenden. Ich mag Objective-C, weil ich weniger Code habe, um zu schreiben. Ich benutze sowohl Objective-C/C++ in meinem aktuellen Projekt, und ich bin nur frustriert mit der Anzahl der Fehler, die ich in Bezug auf den gleichen Standardcode habe. –