C++语言特性
进击的小杨人
越努力,越不费力
展开
-
C/C++中关于内存分配和存储
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在...原创 2019-03-13 23:29:10 · 127 阅读 · 0 评论 -
C/C++中static关键字的作用详解
static修饰全局变量全局变量经static修饰后变为已经静态全局变量,两者都属于静态存储方式,这一点并没有差别;普通的全局变量作用范围是整个源程序,如果该源程序包含多个源文件的话,那么其在各个源文件中都是有效的;而静态全局变量局限于定义该静态全局变量的源文件内,两者在作用范围上有很大区别。static修饰局部变量普通的局部变量是存储在栈中,其生存周期随着函数等的调用结束而结束;但...原创 2019-03-19 19:56:47 · 374 阅读 · 0 评论 -
虚函数、纯虚函数、多态与析构函数
虚函数只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。所以虚函数只能用于类的继承层次结构中。**虚函数是C++中用于实现多态的机制。核心理念就是通过基类指针访问派生类中定义的函数。**虚函数允许子类重新定义成员函数,继承时不重新定义虚函数也是可以的。而子类重新定义父类的做法称为覆盖(override...原创 2019-03-19 20:36:10 · 157 阅读 · 0 评论 -
C/C++中const的作用
const作用修饰变量,说明该变量不可以被改变;修饰指针,分为指向常量的指针和指针常量;常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改;修饰成员函数,说明该成员函数内不能修改成员变量。// 类class A{private: const int a; // 常对象成员,只能在初始化列表赋值public: // ...原创 2019-03-22 22:22:44 · 963 阅读 · 0 评论 -
C/C++中volatile修饰符的作用
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素(操作系统、硬件、其它线程等)更改。volatile 关键字声明的变量,每次访问时都必须从内存中取出值(没有被 volatile 修饰的变量,可能由于编译器的优化,从 CPU 寄存器中取值)。const 可以是 volatile (如只读的状态寄存器)。指针可以是 volatile。...原创 2019-03-22 22:29:37 · 291 阅读 · 0 评论 -
C/C++中this指针作用
this 指针是一个隐含于每一个成员函数中的特殊指针。它指向正在被该成员函数操作的那个对象。当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用 this 指针。当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。this 指针被隐含地声明为: ClassName co...原创 2019-03-22 22:43:32 · 6267 阅读 · 0 评论 -
C/C++中inline内联函数的特性
特性相当于把内联函数里面的内容写在调用内联函数处;相当于不用执行进入函数的步骤,直接执行函数体;相当于宏,却比宏多了类型检查,真正具有函数特性;不能包含循环、递归、switch 等复杂操作;类中除了虚函数的其他函数都会自动隐式地当成内联函数编译器对inline函数的处理步骤将 inline 函数体复制到 inline 函数调用点处;为所用 inline 函数中的局部变量分配内...原创 2019-03-22 22:52:04 · 1225 阅读 · 0 评论 -
C++ 中 struct 和 class
总的来说,struct 更适合看成是一个数据结构的实现体,class 更适合看成是一个对象的实现体。区别最本质的一个区别就是默认的访问控制默认的继承访问权限。struct 是 public 的,class 是 private 的。struct 作为数据结构的实现体,它默认的数据访问控制是 public 的,而 class 作为对象的实现体,它默认的成员变量访问控制是 private 的。...原创 2019-03-22 23:28:02 · 117 阅读 · 0 评论