C++经典面试题
大锅菜~
这个作者很懒,什么都没留下…
展开
-
C++回调函数的基本理解和使用
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。https://baike.baidu.com/item/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0...原创 2020-03-10 16:05:18 · 767 阅读 · 0 评论 -
C++函数指针和指针函数
C++要是不常用,相信过四天你的指针函数与函数指针的概念就该忘个精光。其实只要记住谁在后面谁就是哪个本质。先了解下指针数组与数组指针吧数组指针就是指向数组的指针,它表示的是一个指针,它指向的是一个数组,它的重点是指针,如,int(*pa)[8]声明了一个指针,该指针指向了一个有8个int型元素的数组指针数组就是指针的数组,表示的是一个数组,它包含的元素是指针,它的重点...转载 2020-03-09 19:16:07 · 142 阅读 · 0 评论 -
C/C++中extern关键字详解[转]
一. extern修饰变量和函数C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。extern声明不是定义,即不分配存储空间。/* basic_stdy.h */ #ifndef _BASIC_STDY_H_#define _BASIC_STDY_H_ //extern int a; ...转载 2020-03-09 19:02:31 · 260 阅读 · 0 评论 -
C++2.0 =default,=delete、alias(别名)、noexcept、override、final
一、=default,=delete1、首先我们要回顾一下类默认函数的概念:C++中,当我们设计与编写一个类时,若不显著申明,则类会默认为我们提供如下几个函数:(1)构造函数(A())、(2)析构函数(~A())、(3)拷贝构造函数(A(A&))、(4)拷贝赋值函数(A& operator=(A&))、(5)移动构造函数(A(A&&))、(6)移动...原创 2020-03-09 16:43:51 · 491 阅读 · 0 评论 -
C/C++内存分布
每个程序运行起来以后,它将拥有自己独立的虚拟地址空间。这个虚拟地址空间的大小与操作系统的位数有关系。例如32位硬件平台的虚拟地址空间的地址可以从0~2^32-1,即0x00000000~0xFFFFFFFF,总共4GB大小。在32位Windows操作系统中,高地址的2GB位内核空间,用户空间只有2GB,而32位Linux的内核空间只有1GB,用户空间有3GB大小。而64位操作系统,用户可用空间则...转载 2020-03-09 16:16:32 · 175 阅读 · 0 评论 -
C++ 中的 new/delete 和 new[]/delete[]以及和malloc区别
malloc/free和new/delete的区别和联系 *malloc/free只是动态分配内存空间/释放空间。而new/delete除了分配空间还会调用构造函数和析构函数进行初始化与清理(清理成员)。 *它们都是动态管理内存的入口。 * malloc/free是C/C++标准库的函数,new/delete是C++操作符。 *malloc/free需要手动计算类型大小且返回...转载 2020-03-09 14:53:07 · 247 阅读 · 0 评论 -
C++ static、const和static const、引用类型成员变量声明以及初始化
const 定义的常量在超出其作用域之后其空间会被释放,static定义的静态常量在函数执行后不会释放其存储空间。一、初始化:1、const成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行,并且必须有构造函数。2、static静态成员变量不能在类的内部初始化。在类的内部只是声明,定义必须在类定义体的外部,定义时不带static。 数据类型 类名::静态数据成...原创 2020-03-09 00:18:45 · 584 阅读 · 0 评论 -
C++类const成员变量和const成员函数
在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量和成员函数。1、const成员变量 1)只能在构造函数参数行中对const类型成员变量初始化。不能在构造函数中初始化const类型成员变量class MyClass{public: MyClass(const int a, float b); ~MyClass()...原创 2020-03-08 22:00:49 · 1343 阅读 · 0 评论 -
const和#define使用及区别
1、编译处理阶段不同:define是在预处理阶段进行宏展开,const是在编译运行阶段。2、类型和安全检查不同:const常量有具体的类型,在编译阶段会执行类型检查,而define没有。3、存储方式不同:const常量会进行内存分配(C++中,对于简单类型的临时常量会保存在符号表里面进行替换,而不会分配内存),而define仅仅是展开,不会分配内存。4、有些调试工具可以对const进行调试,...原创 2020-03-08 17:43:00 · 1000 阅读 · 0 评论 -
C++ 中的运算符重载
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。Box operator+(const Box&);#include <iostream>using namespace std; class Box{ public: // 重载...原创 2020-03-07 15:35:11 · 178 阅读 · 0 评论 -
C++右值引用
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。一、左值、右值左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。看见书上又将右值分为将亡值和纯右值。纯右值就是c++...原创 2020-03-07 15:22:00 · 211 阅读 · 0 评论 -
C++强制类型转换
C++ 四种强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。和C语言的()类型转换相比优势:1、明确类型转换,便于定位哪些地方进行了类型转换2、基类指针指向之类指针。四种转换形式:*_cast<转换目标类型>(表达式)一、statci_cast:1、整型和浮点型、字符型之间的互相转换。...原创 2020-03-07 12:26:57 · 236 阅读 · 0 评论 -
(二)C++类的内存大小计算
计算一个类对象的大小规律: 1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,用于标记对象地址); 2、一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的; 3、因此一个对象的大小≥所有非静态成员大小的总和(包括动态分配的变量...); 4、当类中声明了虚函数(不管是1个还是多个),那么在实例化对象时...原创 2020-03-05 19:16:54 · 1514 阅读 · 0 评论 -
(一)C++中虚函数的作用和虚函数的工作原理
1 C++中虚函数的作用和多态虚函数:实现类的多态性关键字:虚函数;虚函数的作用;多态性;多态公有继承;动态联编C++中的虚函数的作用主要是实现了多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要在派生类中声明该方法为虚方法。当子类重新定义了父类的虚函数后,当父类的指针指向子类对象的地址时,[即B b; A a = &b;] 父类...转载 2020-03-05 13:52:58 · 514 阅读 · 0 评论 -
C++重载、隐藏、覆盖
重载:同一个类中,函数名相同,函数参数列表不同,不管返回值是否相同隐藏:是指派生类的函数屏蔽了与其同名的基类函数,注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏。重写(覆盖):是指派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致,重写的基类中被重写的函数必须有virtual修饰。(1)函数Derived::f(float)覆...转载 2020-03-09 15:34:08 · 182 阅读 · 0 评论 -
C++ 类和结构体所占内存大小---转自 https://www.cnblogs.com/-zhangnian/p/6422559.html
1、类所占内存:类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是...转载 2019-04-16 21:25:08 · 345 阅读 · 0 评论