一起学习交流~
c++面试准备

c/c++细节知识点 16模板

c/c++细节知识点 16模板
原理 /* 在某些情况下重载的效率比较低,如果两个函数执行的操作相同,仅仅是类型不同,用重载就需要重新写一个函数 模板就是为了解决这种问题 模板的格式为: template<class Type> template<typename Type> class和typename在声明模板参数类型时时相同的,而且在很多情况下都是相同的,但某些特殊情况必须使用typename 比如在类中使用范围解析……继续阅读 »

laomuji 6天前 32浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 15虚函数纯虚函数抽象类

c/c++细节知识点 15虚函数纯虚函数抽象类
查看类结构 打开vs的命令行工具 查看某个类的结构 cl /d1 reportSingleClassLayout类名 文件名 查看所有类的结构 cl /d1 reportAllClassLayout 文件名 虚函数 /* 虚函数的主要作用是实现了多态,进行动态绑定 实现了用父类指针指向子类对象,通过父类指针调用子类成员函数。 动态绑定就是在运行时根据对象的实际类型来调用对应的函数 包含虚函数的类(不是对象)存……继续阅读 »

laomuji 2周前 (09-13) 46浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 14类的构造析构继承

c/c++细节知识点 14类的构造析构继承
概念 /* 面向对象三大特征:封装 继承 多态 封装: 把客观事物封装成抽象的类,对不可信的数据和操作进行隐藏 继承: 基类 --> 派生类 多态: 多态以封装和继承为基础 多态分为: 1.重载多态:函数重载、运算符重载(编译期) 2.子类型多态:虚函数(运行期) 3.参数多态:类模板、函数模板(编译器) 4.强制多态:基本类型转换,自定义类型转换(隐式转换属于编译期,显示转换属于运行期) 静态多态(编译……继续阅读 »

laomuji 3周前 (09-05) 86浏览 0评论 1个赞

c++面试准备

c/c++细节知识点 13lambda

c/c++细节知识点 13lambda
基本概念 /* 为什么要使用lambda? 将lambda一般定义和使用在同一个地方进行,无需翻阅多页源码,容易看到内部实现 而且lambda不会阻止内联 lambda基本用法 [](){} [] 中 填 = & ,表示按值访问和按引用访问外部所有变量,使用变量名表示按值访问外部变量,使用&变量名表示按引用访问外部某个变量 () 中 填参数 {} 中 填代码,可以有返回值 */ 代码 #includ……继续阅读 »

laomuji 3周前 (09-04) 62浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 12运算符重载

c/c++细节知识点 12运算符重载
基本概念 /* 1 运算符重载要求至少有一个是用户自定义的类型,禁止对两个标准类型重载运算符 2 运算符重载一般分为两种:对成员函数进行重载,对非成员函数进行重载 只有成员函数能重载的运算符: = () [] -> 3 C++运算符中不能重载只有五个:1、条件运算符“?:”;2、成员访问运算符“.”;3、域运算符“::”;4、长度运算符“sizeof”;5、成员指针访问运算符“->*”和“.*” 。 ……继续阅读 »

laomuji 4周前 (09-01) 58浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 11友元

c/c++细节知识点 11友元
友元 在c++中 通常只有公有方法提供访问,但有些时候限制过于严格,所以出现了友元 友元分为3种 友元函数 友元类(权限过大) 友元成员函数(不常用,较麻烦) 友元函数 /* 友元函数 */ class Class11_1{ private: int num; friend void func11_1_ShowNum(Class11_1& c);//友元函数 public: Class……继续阅读 »

laomuji 4周前 (09-01) 76浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 10左值右值引用移动语义

c/c++细节知识点 10左值右值引用移动语义
理论知识 /* 1.引用是什么? 在《C++ Primer Plus》一书中说 "引用是已定义变量的别名(另一个名称)" 但我认为并不准确 如果是别名 不应该占用内存,而引用是占用内存的,下面是我的推断过程 首先看一下指针和引用的反汇编代码 指针和引用的汇编代码完全相同,都是指向变量的地址 可以得出结论,现代编译器中,引用是占用内存的,大小与指针相同。 2.引用和指针是同一个东西吗? 不是,虽然……继续阅读 »

laomuji 4周前 (08-30) 60浏览 0评论 0个赞

c++面试准备

c/c++细节知识点 09enum和enumclass

c/c++细节知识点 09enum和enumclass
作用 /* enum 弱安全检查,每个枚举值是数字,允许不同的枚举类型进行比较,可以隐式的转换为int 非限定作用域,很可能会污染外部作用域 没有规定默认的底层实现,由编译器实现,只要能装下最大的枚举值即可 enum class 强类型检查,虽然枚举值也是数字,但不允许不同的枚举值进行比较,必须显式的转换为int 限定作用域,解决enum的污染问题 规定默认的实现为int类型 */ 用法 #include<i……继续阅读 »

laomuji 1个月前 (08-18) 86浏览 0评论 1个赞

c++面试准备

c/c++细节知识点 08范围解析运算符与using的使用

c/c++细节知识点 08范围解析运算符与using的使用
作用 /* ::范围解析运算符,一般分三类 ::name 用于使用全局的命名空间(匿名命名空间)的某个成员,多个匿名命名空间会被视为同一个,可以互相调用 namespace::name 用于某个命名空间的某个成员 classname::name 用于使用某个类的成员 常用情况1 命名空间相当于定义了一个代码块,用于解决命名冲突问题 using 声明使用命名空间的某个指定内容 using namespace 声明使用……继续阅读 »

laomuji 1个月前 (08-17) 92浏览 0评论 0个赞