文档介绍:,static修饰的变量的值在函数调用过程中维持不变;
(函数体外),static修饰的变量(本地全局变量)作用域只在本模块内;
,static修饰的函数,作用域只在本模块内部。
C++中static~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:静态成员变量(数据成员)--所有对象共享一份数据
。int A::i=0;
:静态成员函数。A::fn();
。(先有类才有对象)
,非静态内容是属于对象的。
++中static修饰的成员变量是以全局变量的形式存在,不占类的内存。
,以保证创建的对象占用不同的内存(对象唯一的)。
Const作用~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Const意味着“只读”。
:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令
,防止意外的修改,增强程序的健壮性。
,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
,避免不必要的内存分配。
Class VS struct~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
默认的继承访问权限:struct是public的,class是private的。取决于子类。
struct作为数据结构的实现体,默认的数据访问控制是public的;class作为对象的实现体,默认的成员变量访问控制是private的。
“class”这个关键字还作用于定义模板参数,就像“typename”,但关键字“struct”不用于定义模板参数。
C VS C++~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C++引入了bool类型,封装了字符串string类;
引用:C++用引用代替传指针;
形参默认值:C++中函数形参可初始化默认值;
:C++中可对操作符重载,operatorxxx
:C++中更多用类
&oo:C是面向过程,C++是面向对象
面向过程 vs 面向对象~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:在函数层复用 vs 在类层次复用
:分析问题的步骤 vs 以功能划分问题
:由若干函数组成 vs 若干类组成
:不高 vs 高
:封装、继承、多态、抽象
C++的内存格局~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:
(stack):编译器自动分配释放,存放函数的形参,局部变量的值等
(heap):手动分配释放,若不释放,程序结束时可能由OS回收
(静态全局区)(data