C++;二进制范围解析运算符和类 有一种方法,在C++中使用“块”类范围解析,这样就不必为我的类实现文件中的每个函数编写相同的样板代码。 我发现在定义C++中的头文件之外的函数时,编写相同的类名和二进制范围解析运算符(CuleNo::)是极其重复的。

C++;二进制范围解析运算符和类 有一种方法,在C++中使用“块”类范围解析,这样就不必为我的类实现文件中的每个函数编写相同的样板代码。 我发现在定义C++中的头文件之外的函数时,编写相同的类名和二进制范围解析运算符(CuleNo::)是极其重复的。,c++,objective-c,class,scope-resolution,C++,Objective C,Class,Scope Resolution,在Objective-C中,我只需要在@implementation/@end块中包含函数 目标C示例: // Buttons.h @interface Buttons : UIView { NSMutableArray *buttonArray; } - (int)getNumberButtons; // Buttons.m #import "Buttons.h" @implementation - (int)getNumberButtons { return [butt

在Objective-C中,我只需要在@implementation/@end块中包含函数

目标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();
}
//Buttons.h
类按钮{
公众:
int getNumberOfButtons()常量;
受保护的:
std::矢量按钮;
};
//按钮.cpp
#包括“按钮.h”
int Buttons::getNumberOfButtons()常量{
返回按钮;
}

否,除非您要在类定义的头中实现所有功能(通常不应该实现)

从技术上讲,你可以用宏来破解它,但是其他看代码的人都会因此讨厌你。你必须习惯这里的“C++方式”。< /P>
根据您使用的IDE的不同,通常会有一些工具(例如Visual Studio的Visual Assist X)帮助您从类定义生成一些样板文件。

否,除非您将其全部实现在类定义的标题中(通常不应该实现)

从技术上讲,你可以用宏来破解它,但是其他看代码的人都会因此讨厌你。你必须习惯这里的“C++方式”。< /P>
根据您使用的IDE的不同,通常会有一些工具(例如Visual Studio的Visual Assist X)帮助您从类定义生成一些样板文件。

Objective-C++不就是为了这个吗?让你在目标C程序中使用C++代码,无论如何,C++的方式不是短的。21个字符<代码>@implementation@end在一个类的长度为4个字符的类之前,你需要四个方法,C++在C++中变得更加繁琐。@迈克,我认为你不理解这个问题,它不是在ObjuleC中使用C++代码。我喜欢Objto-C,因为我有更少的样板代码来写。在我当前的项目中,我同时使用Objective-C/C++和Objective-C/C++两种语言,我只是对我遇到的与同一个样板代码相关的错误数量感到失望。@Martin我的示例很简单,当你有一个大的类名和许多方法时,它会变得更长,而且会重复。例如,我的一个类名为GenePoolEvolved。问题是,我不能仅仅在没有修改的情况下,将函数定义从头文件复制/粘贴到C++实现文件中。但是,我可以在Objective-C中实现这一点,因此在第一次正确编写代码时效率更高。这不是Objective-C++的用途吗?让你在目标C程序中使用C++代码,无论如何,C++的方式不是短的。21个字符<代码>@implementation@end在一个类的长度为4个字符的类之前,你需要四个方法,C++在C++中变得更加繁琐。@迈克,我认为你不理解这个问题,它不是在ObjuleC中使用C++代码。我喜欢Objto-C,因为我有更少的样板代码来写。在我当前的项目中,我同时使用Objective-C/C++和Objective-C/C++两种语言,我只是对我遇到的与同一个样板代码相关的错误数量感到失望。@Martin我的示例很简单,当你有一个大的类名和许多方法时,它会变得更长,而且会重复。例如,我的一个类名为GenePoolEvolved。问题是,我不能仅仅在没有修改的情况下,将函数定义从头文件复制/粘贴到C++实现文件中。但是,我可以在Objective-C中实现这一点,因此第一次正确地编写代码更有效。我觉得这有点令人沮丧,但我可以处理它。我使用的是测试驱动的方法,所以我不会把整个类都去掉。我一次只处理一个或两个方法存根,编写单元测试,然后实现。@Paul:使用合适的工具,这不是什么大问题:例如,您可以声明一个方法并在上下文菜单中选择“生成实现”项。我不知道Xcode的生成机制。我主要从事Mac方面的工作,我没有像Visual Studio这样的好东西。@Paul:对,我也没有。也许Xcode插件接口可以用来做类似的事情?我觉得有点令人沮丧,但我可以处理它。我使用的是测试驱动的方法,所以我不会把整个类都去掉。我一次只处理一个或两个方法存根,编写单元测试,然后实现。@Paul:使用合适的工具,这不是什么大问题:例如,您可以声明一个方法并在上下文菜单中选择“生成实现”项。我不知道Xcode的生成机制。我主要从事Mac方面的工作,我没有像Visual Studio这样的好东西。@Paul:对,我也没有。也许Xcode插件接口可以用来做类似的事情?