C ++二进制范围解析运算符和类

时间:2010-12-03 15:57:37

标签: c++ objective-c class scope-resolution

有没有办法使用"阻止" C ++中的类范围分辨率,这样我就不必为我班级中的每个函数编写相同的样板代码'实施文件。

在C ++中定义头文件之外的函数时,我发现编写相同的类名和二进制范围解析运算符(Classname::)非常重复。

在Objective-C中我只需要在@ implementation / @ 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();
}

1 个答案:

答案 0 :(得分:3)

不,除非你在类定义的标题中实现它(你通常不应该这样做)。

从技术上讲,你可以用宏来破解它,但是看着代码的其他人都会讨厌你。你必须习惯“C ++方式”

根据您使用的IDE,通常有工具(例如Visual Studio的Visual Assist X)可帮助您从类定义生成一些样板文件。