随笔分类 -  C/C++

纯虚函数
摘要:一. 定义纯虚函数是一种特殊的虚函数,它的一般格式如下:class <类名>{virtual <类型><函数名>(<参数表>)=0;…}; 在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。二. 引入原因1、为了方便使 阅读全文

posted @ 2012-03-06 17:28 s7vens 阅读(388) 评论(0) 推荐(0)

struct 构造函数
摘要:声明一个变量,如果没有赋值就使用(编译器会给其一个对应类型的默认值,但这不是赋值),那么就会出错,通常情况下编译器可以帮助发现问题(使用未赋值的变量编译通不过)。构造函数是用来初始化类、结构成员变量的。除了要初始化声明的成员变量,还需要考虑初始化的时机。如下面这个:public struct MyDataCode{ string m_name; int m_age; public MyData(string name ,int age,bool flag) { if (flag) { proccess(); } ... 阅读全文

posted @ 2012-03-06 17:05 s7vens 阅读(371) 评论(0) 推荐(0)

#pragma pack
摘要:pack 为 struct, union 和 class 等的成员对齐指定字节边界. 与编译选项的 /Zp 开关不同, 它不针对整个项目, 而仅针对模块, 比如一个编译单元.1. #pragma pack(show) 以警告信息的形式显示当前字节对齐的值.2. #pragma pack(n) 将当前字节对齐值设为 n .3. #pragma pack() 将当前字节对齐值设为默认值(通常是8) .4. #pragma pack(push) 将当前字节对齐值压入编译栈栈顶.5. #pragma pack(pop) 将编译栈栈顶的字节对齐值弹出并设为当前值.6. #pragma pack(push 阅读全文

posted @ 2012-03-06 16:51 s7vens 阅读(1567) 评论(0) 推荐(0)

void * 不能增减
摘要:C不允许void指针的增加(因为编译器不知道所指向的数据类型),必须按所读或所写的字节数增加 阅读全文

posted @ 2011-12-19 19:33 s7vens 阅读(190) 评论(0) 推荐(0)

C 关键字 - typedef
摘要:转载地址:http://fouri.iteye.com/blog/483974如某个程序的开头有以下几条语句:#include "apue.h"#include <dirent.h>#include <limits.h>/* function type that is called for each filename */typedef int Myfunc(const char *, const struct stat *, int);static Myfunc myfunc;static int myftw(char *, Myfunc *);s 阅读全文

posted @ 2011-12-08 16:24 s7vens 阅读(328) 评论(0) 推荐(0)