C++语法基础
为工作面试准备C++语言基础知识
于大大想要去旅行
新手一枚研究生入坑
展开
-
指针,数组,常量面试题
什么是野指针指向了一个已经删除的对象,或者是指向了访问受限内存区域。什么是函数指针定义函数指针是指向函数的指针变量。函数指针指向一个具体的函数,在编译时,每个函数会有一个入口地址,该入口地址就是函数指针指向的地方。用途可以直接调用该函数,或者作为参数传递,如回调函数。指针与数组的区别指针数组保存数据的地址保存数据间接访问数据,首先获得指针的内...原创 2020-03-18 00:12:31 · 135 阅读 · 0 评论 -
c++中的smart pointer四个智能指针
文章目录c++中的smart pointer四个智能指针auto_ptr(已弃用)unique_ptr (auto_ptr的安全替代)概述问题:赋值出错匿名赋值不出错可用move()来安全解决问题shared_ptrweak_ptr(解决shared_ptr的引用问题)c++中的smart pointer四个智能指针shared_ptr,unique_ptr,weak_ptr,auto_ptr...原创 2020-03-17 23:25:03 · 615 阅读 · 0 评论 -
C++ 四种cast转换
文章目录C++提供的四种新式转型`const_cast (expression)``dynamic_cast (expression)`因为dynamic_cast速度慢,是可以有取代的设计的(跟面试关系不大)解决方法一解决方法二`reinterpret_cast (expression)``static_cast (expression)`为什么不用C的强制转换?可参考<Effectiv...原创 2020-03-17 16:46:10 · 284 阅读 · 0 评论 -
C++ 指针与引用的区别
C++ 指针与引用的区别1.指针和引用的定义和性质区别指针是一个变量,这个变量存储的是一个地址,指向内存的一个存储单元;有const指针,但没有const引用指针可以有多级,引用只有一级指针的值可以为空,引用的值不能为NULL,并且引用在定义的时候必须初始化。指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。"sizeof引用"得到的是所指向的变...原创 2020-03-17 16:00:58 · 139 阅读 · 0 评论 -
细说关键字:explicit(显式)
两个规则:explicit 修饰构造函数时,可以防止隐式转换和复制初始化explicit 修饰转换函数时,可以防止隐式转换,但 按语境转换 除外。使用在例子中的具体说明struct A{ A(int) { } operator bool() const { return true; }};struct B{ explicit B(int) {} ...原创 2020-02-29 18:03:55 · 454 阅读 · 0 评论 -
细说关键字:this
this指针是一个隐含于每一个非静态成员函数的特殊指针。它指向调用该成员函数的对象。当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用this指针。this指针被隐含地声明为:ClassName *const this,这意味着不能给this指针赋值;在ClassName类的const成员函数中,this指针的类型为:...原创 2020-02-28 21:21:49 · 120 阅读 · 0 评论 -
细说关键字:union联合
union 联合概念联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。联合有如下特点:默认访问控制符为public可以含有构造函数,析构函数因为内存共享,所以不能含有引用类型和静态的成员,他们不可以共享内存不能继承自其他类,不能作为基类不能含有虚函数匿名union在定...原创 2020-02-27 19:20:14 · 353 阅读 · 0 评论 -
细说关键字:inline
inline 内联函数特征:内联函数里面的内容写在调用内联函数处不用执行进入函数的步骤,直接执行函数体相当于宏,但比宏多了类型检查,且具有函数特性编译器一般不把具有循环,递归,switch等复杂操作的声明为inline的函数内联。使用:// 声明1(加 inline,建议使用)inline int functionName(int first, int second,...);...原创 2020-02-25 23:26:36 · 119 阅读 · 0 评论 -
细说关键字:static
Static作用修饰普通变量:修改变量的存储区域和生命周期,使变量存储在静态区。在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。若为局部变量:内存中在静态存储区,作用域为局部作用域,离开作用域并不销毁,仍然驻留内存,不能再对它进行访问,直到该函数再次调用。若为全局变量:内存中在静态存储区,作用域为文件开始头部,到文件结尾,其他文...原创 2020-02-22 21:54:54 · 109 阅读 · 0 评论 -
细说关键字:const
文章目录const作用使用const作用修饰变量普通常量:必须初始化,该变量不可以改变。常成员变量,只能在类的构造函数中的初始化列表赋值常对象,只能调用类中的常成员函数,因为常对象不能修改数据。修饰指针常指针(指针常量):右边写的const,绑定的地址不能改变,比如说this指针指向常量的指针(常量指针):左边写的const,绑定地址可变,指向的对象必须是个常量(由...原创 2020-02-21 22:17:04 · 103 阅读 · 0 评论