c++相关的

c++中的语句

cout里为什么不需要像C中的printf加%d之类的字符

char* a{0x01,0x02,0x03,0x04} 用int* 指向该字节结果是什么

 

说一下explicit关键字(使用情形:单参数构造函数 重载)

char* 和 string有什么区别?实际中哪一个用的比较多?为什么?

命名空间namespace的使用 四种强制转换  怎么确保基类转派生类时的类型安全

宏和内联函数的区别 宏定义,内联函数,函数  inline与define有什么区别  const和define

联合体、结构体、类的区别

extern “C”,为什么会用C语言的方式编译

指针和数组的区别

如何通过子类指针访问父类的成员函数(static_cast向上转型)

对象模型:

1.什么是对象模型

1.语言中直接支持面向对象程序设计的部分

2.对于各种支持的底层实现机制

 

C++中使用的对象模型的优缺点:

优点:提高了空间以及存取时间的效率

缺点:如果class object的non static member改变的时候,就需要重新编译代码

主要讨论的有:

(1) non-static , static data member ,template statis data member

static data member永远只存在一份,并且放在全局数据段中 

(2) non-static , static , virtual function 

2.如何再main函数之前进行构造,其中buf便是在main之前构造

class X;

X buf;
int main(){
    ....
}

虚函数表里面的内容

虚函数表里面主要存放虚函数,另外的话可能会加上一个或者两个的slots。

 

一个类怎样不调用构造函数去创建对象

虚函数是怎么实现的深拷贝和浅拷贝

如果没有虚函数 父类指针指向子类对象会怎么办虚函数表

C++ 类指针赋为空,调用类函数会出现什么,为什么?

虚函数表是所有类共用一个吗

虚函数原理, 继承多个类的时候虚函数指针是啥样的

每个对象的虚函数指针的设定以及重置都是由每一个class的构造函数,析构函数以及拷贝赋值运算符自动完成的。

另外的话,每一个类所关联的type_info object(用来支持runtime type)也是经由virtual table指出来的。

虚函数的机制:

1.构造函数的时候,会初始化虚函数指针,使其指向虚函数表

chat int long 32位机器的sizeof大小。

结构体大小(内存对齐相关,为啥要内存对齐,不同操作系统sizeof大小一样吗)

sizeof 的作用 

写一个多态,分析子类的内存模型

没有成员变量和虚函数的对象的大小,没有成员变量但有虚函数的对象的大小。

对象大小推断   long a[4], sizeof(a)是多少  一个空的类会自动包含哪些函数

C++内存管理

C++的垃圾回收是什么

C++内存管理,RAII

.如果进行内存管理,了解有垃圾回收机制的语言吗?

5.什么时候要重载拷贝构造函数?(聊了以后发现他的意思是重写overriding)

C++中,类的哪些成员函数是会自动生成的(构造、析构、拷贝构造、拷贝赋值操作符)

C++中,类的哪些成员函数必须自己定义(只回答了析构和拷贝构造)

构造函数为什么需要初始化列表?

构造函数和析构函数是否需要抛出异常

.写一个拷贝构造,考点:深拷贝

C++ 拷贝构造函数 如何禁用

深拷贝与浅拷贝的区别,有什么危害(我说的线程安全问题,小哥哥提示析构的时候有什么影响)

6.C++内存分区情况介绍(代码区、常量区等)

7.初始化顺序

给一段代码,问构造的顺序是什么?析构的顺序是什么?

c++11中线程,哪些锁,如何提高锁的效率(有些线程安全的数据结构)

内联函数构造函数析构函数static函数可以是虚函数吗?

static关键字,static函数,static成员函数,static是否可以修改成员变量,static是什么时候定义的值,什么时候分配的内存,什么时候初始化,static成员函数在在大端序网络序, static 变量和全局变量的区别。

 

C++11新特性

右值引用

std::move是干什么的,原理是什么

什么是右值引用,什么是右值,右值如何变左值(move函数)

.C++的RVO机制了解吗(返回值优化)

智能指针,如果循环引用了应该怎么办。

我回答了智能指针,要求介绍四种智能指针  ,share_ptr的原理,weak_ptr的原理,auto的原理以及顶层的引用和修饰

介绍shared ptr和unique ptr以及适用场景。shared ptr是线程安全的吗?为什么不安全?那在多线程中使用shared ptr需要都加锁吗

深拷贝和浅拷贝分别是什么?std move是什么作用?移动拷贝函数呢?move过后的class还能用吗,用起来会有问题吗?

8. extern在c和c++中的作用?如何使用?extern c在c++中的原理?
 

如果要保留顶层的引用和修饰要用什么?decltype

shared_ptr ,循环引用问题

6. 函数调用的栈帧都有哪些东西?栈溢出是怎么回事?怎么利用?怎么阻止利用?怎么预防?

2.lambda怎么实现,C++怎么实现?

C++20里的协程,所以又问了我协程相关的东西,包括内核线程和用户态线程之类的。

语言区别:

C++继承的优缺点

C++支持多继承吗?多继承会有什么问题?如果避免菱形继承遇到的问题?(忘记虚继承了,哎)

面向对象与面向过程

C++和java的区别

C++和python的区别

C++和C的区别

c++的话将数据和函数以某种方式关联起来了, 实际上就是封装

c++相比C在布局以及存取时间上的额外开销主要是由virtual带来的,还有多继承。其他的并没有什么理由..

编译型语言和解释型语言

面向对象语言的特点

c++是线程安全的吗

垃圾回收的具体机制

 

 

 

 

编程题目

比较两个double值,有什么需要注意的

实现深度拷贝函数,并支持自定义拷贝

C++ 类指针赋为空,调用类函数会出现什么,为什么?

手写一个单例模式

手写一个智能指针

手写一个字符串拷贝函数

手写string类(要求把构造、析构、拷贝构造、拷贝赋值都写好,并考虑一些特殊条件如自我赋值)

写一个分配100个字节的函数,void meme(char** p),注意传进去的参数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值