c++像苹果开发一样加入类成员

见苹果开发里面添加成员变量特别有趣,我们C++能不能这样呢?下面的宏就可以帮你快速添加类成员

#define _member_( type, name ) private: type  _##name;\

public: type get_##name(){ return _##name; }\

void set_##name(type  name##_){ _##name = ##name##_; }

//readonly

#define _member_readonly_( type, name ) private: type _name;\

public: type get_name(){ return _name; }

让我们看看使用方法:

class request_base

{

public:

request_base(){

_headers = L"";

_data = "";

_url = L"";

}

virtual bool get_response(wstring& retString_) { return true; };

virtual void* parse(){ return NULL; };

_member_(wstring, headers);

_member_(string, data);

_member_(wstring, url);

};

是不是很酷呢?

时间: 2024-08-25 18:09:06

c++像苹果开发一样加入类成员的相关文章

第三方苹果开发库之ASIHTTPRequest(翻译版)

本文转载至 http://www.cnblogs.com/daguo/archive/2012/08/03/2622090.html 来自:http://www.dreamingwish.com/dream-2011/apples-third-party-development-libraries-asihttprequest.html 第三方苹果开发库之ASIHTTPRequest ASIHttpRequest库简介.配置和安装 ASIHttpRequest-创建和执行request ASIH

Java 类成员的初始化顺序

Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. ? 1 ?无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); } } class Test { static Samp

关于苹果开发的知识总结

做苹果开发也有段很长的时间了,断断续续大概已经4年了[目前没有从事这个行业],从刚开始在北京的一家培训公司学习iOS开发起,到找到工作,再到丢掉工作,失去信心,再到重回开发.过程复杂.今天总结一下一些常用的苹果电脑操作和开发环境XCODE以及终端的常用命令的一些操作知识. 首先总结一下苹果系统的操作 1.mac系统快捷键符号.这是至关重要的,因为当我们打开一个软件的时候经常快捷键表示都是使用下面图中的符号来表示实际键盘的按键 例如XCODE 如果我们对这些图形所代表的按键不了解的话无法使用快捷键

(原创)c#学习笔记10--定义类成员02--类成员的其他议题02--调用重写或隐藏的基类方法

10.2.2  调用重写或隐藏的基类方法 无论是重写成员还是隐藏成员,都可以在派生类的内部访问基类成员.这在许多情况下都是很有用的,例如: 要对派生类的用户隐藏继承的公共成员,但仍能在类中访问其功能. 要给继承的虚拟成员添加实现代码,而不是简单地用重写的新执行代码替换它. 为此,可以使用 base 关键字,它表示包含在派生类中的基类的实现代码(在控制构造函数时,其用法是类似的,如第9所述),例如: public class MyBaseClass { public virtual void Do

理解ATL中的一些汇编代码(通过Thunk技术来调用类成员函数)

我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的.但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水. 下面我们主要分析一下ATL中的一些汇编代码. ATL中出现汇编代码主要是2处,一处是通过Thunk技术来调用类成员函数处理消息:还有一处是通过打开_

C#定义类成员

1.成员定义 public--成员可以由任何代码访问. private--成员只能由类中的代码访问(如果没有使用任何关键字,就默认使用这个关键字). internal--成员只能由定义它的程序集(项目)内部的代码访问. protected--成员只能由类或派生类中的代码访问. 后两个关键字可以合并使用,所以也有protected internal成员.他们只能有项目(更确切地讲,是程序集)中派生类的代码来访问. 也可以使用关键字 static 来声明字段.方法和属性,这表示它们是类的静态成员,而

Objective-C类成员变量深度剖析

目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objective-C类不能动态添加成员变量 总结 看下面的代码,考虑Objective-C里最常见的操作之一——类成员变量访问. - (void)doSomething:(SomeClass *)obj { obj->ivar1 = 42; // 访问obj对象的public成员变量 int n = sel

C++类库开发之导出类设计原则

导出类设计 上一篇博客详细陈述了类库开发的各个知识点(http://blog.csdn.net/z702143700/article/details/45989993),本文将进一步陈述,对于类库开发过程中导出类的开发规范问题. C/C++开发的DLL当初是作为函数级共享库设计的,并不能真正提供一个类所必需的信息.类层上的程序复用只有Java和C#生成的类文件才能做到.所以,当我们在用C++开发类库时经常会遇到类的设计问题,设计不好,就会出现DLL地狱. DLL地狱 导出类的DLL在维护和修改时

C#继承机制 访问与隐藏基类成员

(1) 访问基类成员 通过base 关键字访问基类的成员:   调用基类上已被其他方法重写的方法.  指定创建派生类实例时应调用的基类构造函数.  基类访问只能在构造函数.实例方法或实例属性访问器中进行. 从静态方法中使用 base 关键字是错误的. 示例:下面程序中基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法.通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法. using System ;public class Person