文档详情

《C++编程思想学习笔记(二)》.pdf

发布:2015-10-31约6.57千字共9页下载文档
文本预览下载声明
C++编程思想学习笔记(二) 学习各种外挂制作技术,马上去百度搜索 魔鬼作坊 点击第一个站进入、快 速成为做挂达人。 构造函数:与类同名,无返回值 this 指针,指向类对象地址 析构函数:与类同名,加代字号~,无参数,无返回值 当对象超出他的作用域时,自动调用析构函数。 switch 、goto语句都可能挑个语句,因此不允许对象定义 栈--局部变量 堆--动态变量 静态存储区--全局变量、静态变量 require.h 中的require()函数,可以代替assert 的作用 union 也可以带有构造函数、析构函数、成员函数和访问控制,但是 union 不能作为继 承时的基类 union 没有类型名和标识符,叫做匿名联系,为这个 union 创建空间,不需要标志符的 方式和以点操作符方式访问这个union 的元素。 函数的默认参数规则: 第一,只有参数列表后部的参数可以是默认的,即不可以在一个默认参数后面又跟一个 非默认参数 第二,一旦在一个函数调用中开始使用默认参数,那么这个参数后面所有的参数必须是 默认的 默认参数只能放在函数声明中,通常在头文件里 第8 章 常量 #define BUFSIZe 100 不占用存储空间,预编译时,替换 const 变量,仅在const 变量定义的文件中是可见的,其他文件不可见;通常情况下, C++编译器不为 const 创建存储空间,可以使用 extern 进行强制说明 extern const int bufsize;extern 意味着有外部文件需要连接,因此必须分配空间。 const可以用于集合,但不能将const集合保存在符号表中,所以必须分配内存,在这种 情况下,const意味着不能改变的一块存储空间,因此,不能在编译期间使用它的值,因为 编译器在编译期间不需要知道存储的内容。 constint i[]={1,2,3,4}; float f[i[3]];//非法的;因为编译期间不知道i[3]的值。 在 C 编译器中,const 意味着不能改变内容的普通变量:const int bufsize=100; char buf[bufsize];非法的; C 编译器中可以写constint bufsize,可以看做是bufsize 的声明,是允许外部链接的。C++ 默认const 是内部连接的,C++里面需要使用extern *与标识符结合而不是与类型结合 为了保证一个类对象为常量,引入了const成员函数:const 成员函数只能对于const对 象调用 构造函数初始化列表就是用来初始化const成员,初始化列表的发生在构造函数任何代 码执行之前 enum 不占存储空间,在编译期间生成 const类对象,当类对象声明为const时,只能保证public 成员变量在生命周期内是不可 更改的,为了保证const 类对象不可更改内部成员,对象只能调用const成员函数,const成 员函数声明例如: int f() const; 在f() const函数中任何更改类对象成员的语句,编译器都能检测出错误; 需要注意的是:int f() const;int f();在编译器看来是两个不同的函数; const成员函数调用const和非const对象都是安全的; 析构函数与构造函数都不能是const 成员函数; const函数内部还是可以将成员变量更改的,方法一:将this强制转化为非const类对象, 即可; 方法二,可以使用mutable 关键字、,通常为了表明在const成员函数中可以对象mutable 成员发生了更新 volatile 关键字,防止编译器对变量的优化 第8 章小结:const能将对象、函数参数、返回值和成员函数定义为常量 第9 章 内联函数 C 中保持效率的方法是使用宏,宏是预编译处理而不是编译器,但是宏容易引入难以发 现的错误 内联函数在适当的地方像宏一样展开,但是不需要函数
显示全部
相似文档