:anguished:C/C++ 为不影响同学们阅读,参考文献及引用出处已于本小节末尾按照顺序统一给出,其余科目类似。 1、在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设置栈指针 初始化静态static变量和global全局变量,即.data段的内容 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL等等,即.bss段的内容 全局对象初始化,在main之前调用构造函数,这是可能会执行前的一些代码 将m…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、类的对象存储空间? 非静态成员的数据类型大小之和。 编译器加入的额外成员变量(如指向虚函数表的指针)。 为了边缘对齐优化加入的padding。 空类(无非静态数据成员)的对象的size为1, 当作为基类时, size为0. 2、简要说明C++的内存分区 C++中的内存分区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区和代码区。如下图所示 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、 在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设置栈指针 初始化静态static变量和global全局变量,即.data段的内容 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL等等,即.bss段的内容 全局对象初始化,在main之前调用构造函数,这是可能会执行前的一些代码 将main函数的参数argc,argv等传递给main函数,然后才真正运行main函数 __attribute__((co…

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文

1、什么是STL? C++ STL从广义来讲包括了三类:算法,容器和迭代器。 算法包括排序,复制等常用算法,以及不同容器特定的算法。 容器就是数据的存放形式,包括序列式容器和关联式容器,序列式容器就是list,vector等,关联式容器就是set,map等。 迭代器就是在不暴露容器内部结构的情况下对容器的遍历。 2、解释一下什么是trivial destructor “trivial destructor”一般是指用户没有自定义析构函数,而由系统生成的,这种析构函数在《STL源码解析》中成为“无关痛痒”的析构函数。…

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文

1、C++ 11有哪些新特性? nullptr替代 NULL 引入了 auto 和 decltype 这两个关键字实现了类型推导 基于范围的 for 循环for(auto& i : res){} 类和结构体的中初始化列表 Lambda 表达式(匿名函数) std::forward_list(单向链表) 右值引用和move语义 ... 2、auto、decltype和decltype(auto)的用法 (1)auto C++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、C++的多态如何实现 C++的多态性,一言以蔽之就是: 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象的实际类型来调用相应的函数,如果对象类型是派生类,就调用派生类的函数,如果对象类型是基类,就调用基类的函数。 举个例子: #include <iostream> using namespace std; class Base{ public: virtual void fun(){ cout << " Base::func()" …

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!

2021年8月23日 1条评论 2点热度 0人点赞 2studysite 阅读全文