本帖内容已移至:各种计算机语言简介和总结 – C++学习笔记
C++ 学习笔记
Version: 2010-03-03
学习C++过程中,遇到的一些内容,觉得有必要记录下来,以供后用。
其中主要是之前用C语言,所以接触C++,有些内容不太习惯,因此记录C++中和C不同的,需要注意的部分内容。
1. Protected,public,private
对应的含义,用下表,可以很容易区分:
关键字 | |||
| Private 私有 | Protected 受保护 | Public 公有 |
对应作用 (允许谁访问) | 友元函数 | 友元函数 | 友元函数 |
该类自己的函数 | 该类自己的函数 | 该类自己的函数 | |
| 子类的函数 | 子类的函数 | |
|
| 该类的对象 |
2. 函数带默认值的参数
可以在调用函数的时候,不给那些带默认值的参数赋值,即调用函数时候,参数少了几个。
不过要注意的是,带默认值的参数,肯定都是从最右边的一个或几个。
3. 枚举变量的引用
类名::某一枚举变量值
而不是C语言中直接引用:某一枚举变量值
4. 用new生成的变量与直接定义变量的区别
已经知道new要和delete配对使用。
直接定义变量:函数中的局部变量的话,在栈stack中分配,静态分配,函数调用完,自动释放内存,即编译器自己帮你释放内存,不需要你关心。
全局的话,应该和C语言中的没区别,就是普通全局变量,始终占用内容,会增加程序耦合度,在可以的情况下,应尽量少用。
用new生成的变量:动态分配,在堆heap中分配,所以要自己关心内存的使用,在不用此变量的时候,用delete释放内存,否则就产生了内存泄露,即有部分不再使用的变量存在于内存中,属于站着茅坑不拉屎的类型。
一般常见用法一直就是在类的构造函数中用new分配内存给某个变量,然后对应地在析构函数中用delete释放对应变量所占的内存。
5. 重载Overload
同一个函数名,参数的个数和类型不同。
6. 关于继承inherit
没啥多说的,只是自己不太熟悉,导致看到某个类B调用某个函数func1,结果在B类的定义中找不到,最后才发现原来是B类继承A类,A类中有public的函数func1,因此才有B可以调用func1。