C++开发学习路线01:C/C++语言篇

本文介绍了C++相对于C语言的特性,如面向对象、模板和新特性。讨论了static关键字在两者的不同用法,以及union的作用。还涵盖了volatile关键字、函数调用的汇编层面、面向对象的基本特性、多态实现、智能指针的工作原理、容器如vector和map的区别、类型转换、程序编译过程及虚函数表在单继承、多继承和菱形继承中的分布情况。

0x01:C/C++语言(22个问题)

1、 谈谈你对C和C++的编程差异理解
1:C++引入面向对象的机制 同时键入C语言
2:三大特新 封装 继承 多态
3:复用性高 引入模板的概念
4:不断发展 有新特性 C++11nullptr auto lambda表达式 右值引用 智能指针
2、 static关键字在C语言和C++中各自有哪些不同用法?
C/C++ 隐藏,保持变量的永久性 默认初始化为0
修饰类成员变量和成员函数(属于类的,共享这一静态存储区域)C++独有
Static成员函数只能访问static成员变量和成员函数 没有this指针
普通成员函数可以访问类中的任意成员;有this指针
3、union是什么,有什么用?
共用体 同一内存区域创建多个类型变量 目的是节省空间和减少创建多个变量的花销。特点如下
1:union多个成员共享一块内存区域 同一时刻只存在一个成员变量
2:union共用体的长度等于 大小等于最大的那个变量的长度,从低地址开始
3:union不同成员赋值 会覆盖其他成员的值
4、volatile关键字是做什么用的?
每次从内存中读取最新的值,而不是从寄存器里读取,多线程中可能意想不到的改变了但是程序会优先读取寄存器中的值读取的不是最新值
三个应用场景:
外围设备的特殊功能寄存器
在中断服务函数中中修改全局变量
在多线程中修改全局变量
5、函数调用过程在汇编层面如何进行?
1:参数传递 通过寄存器
2:函数返回地址入栈
3:代码寻址执行
4:结果返回
6、面向对象有哪些基本特性?
封装 继承 多态
7、多态是如何实现的?
利用虚函数,基类指针指向派生类就使用派生类的成员,指向基类就使用基类成员
虚函数是虚函数表+虚表指针
8、编程实现一个单例模式

#include <iostream>
#include <mutex>
using namespace std;
/单例模式,懒汉式
class sigleIntance
{
   
   
public:
    static sigleIntance* GetsigleIntance();
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值