C++:如何用简单的汇编指令,实现C++复杂抽象的面向对象概念?——「1、绪论」

数字银月渡
• 阅读 900

绪论

之前,我花了几章时间,探索了C语言编译器,如何用简单的汇编指令,实现C语言面向过程的概念,包括实现基本数据类型、结构体、逻辑控制分支结构、函数调用、参数传递和指针等,基本对用汇编实现面向过程有了大概的掌握和宏观上的了解,而我做这件事的最终目的,就是想探索C++的面向对象,是如何用汇编实现的。

「这也是我最喜欢的学习方式,一开始不陷入细枝末节,先从宏观上把握整体结构、整体框架,再去微观掌握、微观细扣具体的知识点,与大家共勉。」

在写C++面向对象的汇编实现原理之前,我想先思考思考我想要问的问题是什么?想要探索的是哪些点?因此在这篇文章里记录、思考一下!

主要有以下相关知识点需要探索研究:

# 纯C++语法的运用,编译器提供了语法特性
1. 创建1个类,类中包含基本数据类型、基本成员函数、构造与析构函数,main函数里创建个对象进行对其进行操作;
2. 父子类继承时,父类不同修饰符下的数据、成员函数是如何处理的?
3. 重载与重写是如何实现的?
4. 多态相关?
5. 虚函数与纯虚函数?
6. 类的静态成员,友元函数等
7. 抽象类、运算符重载等

# 库的调用:
8. 多线程,开启一个新的线程,会被编译成什么汇编?
9.volatile/原子变量/锁...会被编译成什么汇编?

暂时想到这些想了解的,其它的边写边想吧!能把C++面向对象的实现原理完全搞清楚,也需要花点功夫。正好上半年也刚过去,下半年的计划也要逐渐开始,那么就先希望8月31日前能利用业余时间把C++大部分面向对象的问题都探索清楚!

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
Java【NIO2】- 系列 1: 为什么要写【NIO2】系列?
1\. 基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c的printfscanf,java的面向对象封装)2\.  Java标准io回顾Java标准
Wesley13 Wesley13
3年前
Java中的native关键字
一. 什么是NativeMethod  简单地讲,一个NativeMethod就是一个java调用非java代码的接口。一个NativeMethod是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去
Stella981 Stella981
3年前
Python服务器开发一:python基础
Python(蟒蛇)是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。【特点】1Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。2Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、
Wesley13 Wesley13
3年前
1 汇编实现简单的算数运算
1汇编实现简单的四则运算1.1加法inta\30;intb\20;intc;//cab;asm("mov%1,%0\\n\\t"//mov操作数写入寄存器"add%2,%0"//a
Wesley13 Wesley13
3年前
CMU
一、实验目的1.理解C语言程序的机器级表示。2.初步掌握GDB调试器的用法。3.阅读C编译器生成的x8664机器代码,理解不同控制结构生成的基本指令模式,过程的实现。二、实验工具1.SecureCRT2.Linux3.Objdump命令反汇编4.GDB调试工具
Wesley13 Wesley13
3年前
Objective
一、基本概念ObjectiveC(简称OC)是iOS开发的核心语言,苹果公司在维护,在开发过程中也会配合着使用C语言、C,OC主要负责UI界面,C语言、C可用于图形处理。C语言是面向过程的语言,OC是在C语言基础上加上了一层面向对象的语法(将复杂面向对象语法去掉了)。我们可以使用OC开发MacOSX平台和IOS平台的应用程序。2
Wesley13 Wesley13
3年前
GNU
GNUas汇编在编译C语言程序时,GNUgcc编译器会首先输出一个作为中间结果的as汇编语言文件,然后gcc回调用as汇编器把这个临时汇编语言程序编译成目标文件。即实际上as汇编器最初是用于专门汇编gcc产生的中间汇编语言程序的,而非作为一个独立的汇编器使用(这也就是为什么你只调用gcc就能将你的c
Wesley13 Wesley13
3年前
Java学习路线图
JavaJava是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立
Wesley13 Wesley13
3年前
Java是一门面向对象编程语言的理解
Java是一门面向对象编程语言。不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有:简单性面向对象分布式健壮性安全性