c++学习笔记

  来了csdn很久了,都没写过文章,有点过意不去,于是逼着自己这个懒人写了一下一些保留在个人笔记本上的小点滴,希望不会误导大家。。。。。一下只是笔记中的一小部分,以后有空在继续放上来。。。。。。

1 虚函数是为了继承接口和默认行为。纯虚函数只是继承接口,行为必须重新定义

2 集和多集的区别:set支持唯一键值,set中的值都是特定的,而且只出现一次;而multset中可以出现副本键,同一个值可以出现多次。

3 map的节点是一对数据。

   set的节点是一个数据。

   set中的key和value是key类型的。

   map中的key和value是一个pair结构中的两个分量。

4 c++的一般规则是,除了以typename修饰之外,template内的任何表示符号都被视为一个值而非型别。

5 静态成员变量的初始化应该在主函数调用之前,并且不能在类的声明中出现。

   类的静态成员是属于类的而不是属于一般对象的,静态成员的状态不会随着一个新的对象的新建而重新定义。

6 静态成员函数由于与对象无关,所以在其中是不能对类的普通成员进行操作的。

   静态成员函数与普通成员函数的区别在于缺少this指针。

7 友元的作用是提高程序的运行效率(即缺少类型检查和安全性检查)。

   一个函数可以是多个类的友元函数,只要在各个类中分别声明即可。

   当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一个类的友元类。

8 #ifndef<标识>

   #define<标识>

   。。。。。。。

  。。。。。。。

#endif

上面标识的作用是:当你有几个cpp文件,而这几个文件都include同一个头文件,而编译时这几个cpp文件都要一同编译成可执行文件,这时会出现大量声明冲突,所以就要用到上面标识来解决问题。

9 如果使用delete时未加中括号,delete便假设删除的是单一对象,否则便假设删除的对象是个数组。

10 面向对象程序设计的重点是类的设计,而不是对象的设计。

11 断言几个原则(assert)

(1)使用断言捕捉不应该发生的非法情况。

(2)使用断言对函数的参数进行检查。

12 在用delete或用free释放指针所指内存后,应该显式地将指针置为null,以防下次使用时发生错误。

13 引用传递的性质像指针传递,而使用方法却像值传递。

14 return语句不可以返回指向“栈内存”的指针或者引用,因为该内存在函数体内结束时被自动销毁。

15 一旦引用被初始化,就不能改变引用的关系。

16 如果函数的参数是一个指针,不要指望用该指针去申请动态内存。

     如果非得要用指针参数去申请内存,那么应该改用“指向指针的指针”。

17 参数缺省值只能出现在函数的声明中,而不能出现在定义体中。

18 调用约定是指调用一个函数时,函数的参数压入顺序,谁来清理栈的内容等。默认的c,c++调用约定_cdecl,参数从右到左。

     而_stdcall(win api)则从左到右。

19 vc对在堆上分配的内存都做了记录,主要用于free,delete释放的内存时做归还处理。如:

     char *p=(char*)malloc(100);

     p+=10;

     free(p);

    当执行以上代码时,p已经发生改变,所以提交到free的指针值已经变化,程序崩溃。

20 vc6.0对友元的支持不好,所以可以将友元函数的定义放到类里面。

21 不要忽略编译器的警告信息。

22 虚拟函数必须是类成员函数。

     绝对不要让operator>>和operator<<成为其成员函数。

    

23 尽可能避免对一个数值型别和一个指针型别进行重载。

个人百度blog:http://hi.baidu.com/hljleo

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hljleo/archive/2009/09/28/4608093.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值