Есть ли способ использовать «блочное» разрешение области действия класса в C ++, чтобы мне не приходилось писать один и тот же шаблонный код для каждой функции в файле реализации моего класса.
Я нахожу крайне повторным писать одно и то же имя класса и оператор разрешения двоичной области видимости (Classname: :) при определении функции вне файла заголовка в C ++.
В Objective-C мне нужно только включить функции в блок @ creation / @ end.
Objective-C Пример:
// Buttons.h
@interface Buttons : UIView {
NSMutableArray *buttonArray;
}
- (int)getNumberButtons;
// Buttons.m
#import "Buttons.h"
@implementation
- (int)getNumberButtons
{
return [buttonArray count];
}
@end // End implemenation
C ++ Пример
// 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();
}