c++中的宏 #define _CLASSDEF(name) class name

 1 #include <iostream>
 2 using namespace std;
 3 #define _CLASSDEF(name) class name;  4     typedef name  * P##name; 5     typedef name  & R##name; 6     typedef name  *  & RP##name; 7     typedef const name  * PC##name; 8     typedef const name  & RC##name
 9 _CLASSDEF(base);
10 class base
11 {
12 public:
13     base()
14     {
15     }
16     base(int _a)
17     {
18         a=_a;
19     }
20     int get()
21     {
22         return a;
23     }
24     void set(int _a)
25     {
26         a=_a;
27     }
28 private:
29     int a;
30
31 };
32
33 int main(int argc, char *argv[])
34 {
35     base b(10);
36     Pbase pb=&b;
37     Rbase rb=b;
38     rb.set(20);
39     cout<<b.get()<<endl;
40     cout<<pb->get()<<endl;
41     cout<<rb.get()<<endl;
42
43
44     return 0;
45 }
时间: 2024-10-12 20:10:19

c++中的宏 #define _CLASSDEF(name) class name的相关文章

C/C++中慎用宏(#define)

宏的定义在程序中是非常有用的,但是使用不当,就会给自身造成很大的困扰.通常这种困扰为:宏使用在计算方面. 本例子主要是在宏的计算方面,很多时候,大家都知道定义一个计算的宏,对于编译和编程是多么的有用.现在定义有以下一个计算 "乘法" 的宏. #include <stdio.h> #define MUL(a) ((a)*(a)*(a)) int main(int argc,char *argv[]) { int i = 10; int sum = MUL(i); printf

iOS 中 #error宏 的使用的一个例子

头文件中如下定义宏: /** * @brief 默认空间名(必填项) */ #error 必填项 #define DEFAULT_BUCKET @"" /** * @brief 默认表单API功能密钥 (必填项) */ #error 必填项 #define DEFAULT_PASSCODE @"" 类的实现中使用: self.bucket = DEFAULT_BUCKET; self.passcode = DEFAULT_PASSCODE; 这样,如果没有初始化这两

复习C++:VS2008中的宏干嘛用的

VS2008中有宏,可也进行编辑和设置. 好处: 1.快速生成代码,帮助开发. 2.个人定制化功能,IDE更合适自己用. 3.提升编程效率. 缺点: 使用VB开发,一开始用起来费事.不过有官方参考文档,拷贝粘贴实现. 举例: 自动填写类构建代码 注意: IDE中的宏是为了方便工具的使用,代码中的宏是一种定义. 延伸阅读: 代码中的宏通常啥用: 1.控制编译开关.#ifdeine #endif 2.宏定义,用于代码一些常量,比如pai.#define PAI = 3.14

iOS开发中使用宏定义提高开发效率

iOS开发中使用宏定义提高开发效率 (2013-07-10 10:47:33) 转载▼ iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义. 调试Log iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便. 看下面的例子: #ifdef DEBUG #define LOG(...) NSL

makefile 中定义宏位置需要注意一下

1 CUR_DIR = $(shell pwd) 2 3 CFLAGS = -g -Wall 4 GCC = gcc 5 GXX = g++ 6 7 TARGET = exe.out 8 9 SRC_FILES += $(shell find $(CUR_DIR) -name *.cc) 10 += $(shell find $(CUR_DIR) -name *.cpp) 11 12 OBJS = fatal-impl.o log.o 13 14 INCLUDE += -I. 15 RM = r

Makefile中进行宏定义

实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解释器用的,对所编译的文件完全没有作用. 关键词: Make宏定义 Make传递宏定义 Makefile中添加宏定义 Makefile -D 在Makefile中我们可以通过宏定义来控制源程序的编译.只要在Makefile中的CFLAGS中通过选项-D来指定你于定义的宏即可. 如:CFLAGS +=

C/C++中的宏

时间:2014.05.19 地点:图书馆 心情:几天在图书馆做了一张照片,哎,以后可业余开个照相馆啊~哈哈 ------------------------------------------------------------------------------- 一.宏万恶之首 宏由于缺少类型检查,被认为是万恶之首,但宏的可读性和性能非常好,我们只要合理正确的使用宏,那么必然可提高代码可读性和可维护性. --------------------------------------------

如何使用C/C++动态库与静态库中的宏

在哪个cpp文件中使用的该动态库或静态库,就在该h/cpp文件所在的工程的预处理命令中添加库中的宏. 如有库工程add,其头文件如下 #ifndef _ADD_H #define _ADD_H #if defined( _WIN32 ) || defined( __MINGW32__ ) # if defined( ADD_EXPORTS ) # define ADD_EXPORT __declspec(dllexport) # elif defined( ADD_USE_DLL_IMPORT

C++中的内联函数和C中的宏定义的区别

在C++中内联函数: 内联函数即是在函数的声明和和定义前面加上“inline”关键字,内联函数和常规函数一样,都是按照值来传递参数的,如果参数为表达式,如4.5+7.5,则函数将传递表达式的值(这里为12),而宏定义则不同. 在C中的宏定义: C语言使用的预处理器语句#define来提供宏,例如:#define SQUARE(X)  X*X,这里宏并不是通过值传递来实现的,而是通过文本替换来实现的. 内联函数和宏定义的区别用下面的代码来观察: //内联函数 inline double squar