C++ 基本知识整理

Posted wshr007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 基本知识整理相关的知识,希望对你有一定的参考价值。

  Static关键字

  1. 全局静态变量

  内存中位置:静态存储区,且程序运行期间一直存在。

  未经初始化的全局静态变量自动初始化为0。

  全局静态变量在声明文件之外是不可见的。

  2.局部静态变量

  内存中位置:静态存储区。

  未初始化自动初始化为0。

  作用域为局部作用域,但离开作用域后不会销毁,仍然驻留在内存中,再次访问时值不变。

  3.静态函数

  函数定义声明默认为extern,但静态函数只在声明的文件中可见,其他文件不可见。

  即使用static修饰则该函数只能在本文件中使用,且不会与其他文件中同名函数冲突。

  全局函数应在头文件中声明,局部函数在cpp中声明带static

  4.类静态成员

  同一个类中静态成员在多个对象之间数据共享。

  5.类静态函数

  .在静态成员函数中不能直接引用类中的非静态成员,但可以引用类中的静态成员。静态成员函数中药引用非静态成员时要通过对象来引用

  指针和引用的区别

  1. 指针有分配空间(大小是4个字节),引用没有(sizeof大小为引用对象的大小)

  2. 指针初始化为NULL(nullptr),引用必须初始化为一个已有对象的引用。

  3.参数传递时,指针需要解引用(*)才可以对对象操作,引用则可以直接修改。

  4.指针在使用中可以改变指向的对象,但引用仅是别名,不能改变。

  5.可以有多级指针,但引用只有一级(&&为右值引用)

  四个智能指针

  四个智能指针为:shared_ptr,weak_ptr,unique_ptr,auto_ptr,前三个C++11支持

  智能指针原理:智能指针为一个类,超出类作用域后,类会子懂调用析构函数,析构函数则会自动释放资源。

  所以智能指针即在函数结束时自动释放内存空间,不需要手动释放。

  

  

  

以上是关于C++ 基本知识整理的主要内容,如果未能解决你的问题,请参考以下文章

C++基础知识点整理

C++知识整理(一)

c++学习知识整理

C++知识点整理

C++ 基础知识整理

C++ 基础知识整理