0

有没有办法在 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();
}
4

1 回答 1

3

不,除非您将在类定义的标头中全部实现(通常不应该这样做)。

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

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

于 2010-12-03T16:01:46.270 回答