码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 基本知识整理

时间:2019-08-28 17:14:51      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:初始化   cpp   数据   指针   shared   静态成员   weak_ptr   冲突   字节   

  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++ 基本知识整理

标签:初始化   cpp   数据   指针   shared   静态成员   weak_ptr   冲突   字节   

原文地址:https://www.cnblogs.com/wshr007/p/11425089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!