
C++
ysr1980
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
类静态成员和非静态成员属于类还是对象
C++程序的内存格局通常分为四个区:全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(即自由存储区).全局数据区存放全局变量,静态数据和常量;所有类成员函数和非成员函数代码存放在代码区;为运行函数而分配的局部变量,函数参数,返回数据,返回地址等存放在栈区;余下的空间都被称为堆区. 根据这个解释,我们可以得知在类原创 2007-07-15 20:59:00 · 5722 阅读 · 2 评论 -
const的用法
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性。 1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应) 2. const 修饰类的数据成员原创 2007-07-15 20:52:00 · 569 阅读 · 0 评论 -
虚函数 纯虚函数的用法
虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。 下面是一个实例:#i nclude "stdio.h" #i nclude "conio.h" class Parent { public: char data[20]; void Function1(); virtual void原创 2007-07-16 22:54:00 · 1573 阅读 · 0 评论 -
::操作符的作用
主要两个用处: 一个是引用类的方法和成员,比如有一类,A,中的一方法a,在定义方法时一般写作A::a(...); 另一个用来指出这个函数为“全局”函数;另外在MFC中要调用API,一般也用::,比如调用MessageBox,写作::MessageBox,其实有与没有差别不大。 但在以下情况必须有: 1、某全局函数与某个类方法名称参数定义一致,在这个类里需要调用这个全局函数时,一定要加::,否则编译原创 2007-07-15 20:56:00 · 1078 阅读 · 0 评论 -
结构体指针强制类型转换
这两天整结构体指针强制类型转换的问题,真好碰到一个网友的一个问题,我把这个问题实例化实现, 发现这个实例对弄清楚下面三个问题有很大帮助: 1,结构体指针强制类型转换的问题 2,char字符cout输出的问题 3,结构体数据对齐的问题 具体下面的实例有分析 #include using namespace std; #pragma pack(1) typedef str原创 2008-05-07 09:53:00 · 10263 阅读 · 0 评论 -
多重继承和虚继承的内存布局
这篇文章主要讲解虚继承的C++对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。原文见这里(By Edsko de Vries, January 2006) 敬告: 本文是介绍C++的技术文章,假定读者对于C++有比较深入的认识,同时也需要一些汇编知识。 本文我们将阐释GCC编译器针对多重继承和虚拟继承下的对象内存布局。尽管在理想的使用环境中,一个C++程序员并不需要了解这些编译器内部实现细节,实际转载 2011-03-11 14:53:00 · 740 阅读 · 0 评论