01 2024 档案

摘要:抽象类 阅读全文
posted @ 2024-01-25 17:01 二氧化硅21 编辑
摘要:多态 阅读全文
posted @ 2024-01-25 17:01 二氧化硅21 编辑
摘要:动态绑定的时机 阅读全文
posted @ 2024-01-25 16:59 二氧化硅21 编辑
摘要:虚析构函数 阅读全文
posted @ 2024-01-25 16:47 二氧化硅21 编辑
摘要:虚函数-静态绑定-动态绑定 阅读全文
posted @ 2024-01-25 16:46 二氧化硅21 编辑
摘要:重载-隐藏-覆盖 阅读全文
posted @ 2024-01-25 16:44 二氧化硅21 编辑
摘要:派生类的继承过程 阅读全文
posted @ 2024-01-25 16:44 二氧化硅21 编辑
摘要:继承 阅读全文
posted @ 2024-01-25 16:42 二氧化硅21 编辑
摘要:new和delete重载实现的对象池应用 阅读全文
posted @ 2024-01-21 11:29 二氧化硅21 编辑
摘要:new和delete的运算符重载视角 阅读全文
posted @ 2024-01-21 11:28 二氧化硅21 编辑
摘要:迭代器失效 阅读全文
posted @ 2024-01-20 23:27 二氧化硅21 编辑
摘要:String字符串和vector对象的迭代器iterator实现 阅读全文
posted @ 2024-01-20 23:26 二氧化硅21 编辑
摘要:String类的实现 阅读全文
posted @ 2024-01-20 23:24 二氧化硅21 编辑
摘要:容器空间配置器allocator 阅读全文
posted @ 2024-01-20 23:23 二氧化硅21 编辑
摘要:C++的运算符重载 阅读全文
posted @ 2024-01-20 23:23 二氧化硅21 编辑
摘要:实现C++ STL顺序容器vector-代码 阅读全文
posted @ 2024-01-20 23:22 二氧化硅21 编辑
摘要:17类模板 阅读全文
posted @ 2024-01-16 19:27 二氧化硅21 编辑
摘要:16理解函数模板 阅读全文
posted @ 2024-01-16 10:47 二氧化硅21 编辑
摘要:15指向成员变量和成员方法的指针 阅读全文
posted @ 2024-01-16 10:46 二氧化硅21 编辑
摘要:14静态成员变量,静态成员函数,常成员方法 阅读全文
posted @ 2024-01-16 10:45 二氧化硅21 编辑
摘要:13构造函数的初始化列表 阅读全文
posted @ 2024-01-16 10:44 二氧化硅21 编辑
摘要:12类和对象代码示例 阅读全文
posted @ 2024-01-16 10:43 二氧化硅21 编辑
摘要:深拷贝和浅拷贝 没有提供任何构造函数的时候,系统默认生成构造和析构函数。 当需要使用拷贝构造函数是,系统默认生成拷贝构造函数,是内存拷贝。 class seqStack { private: int* _pstack; int _size; int _top; public: seqStack(in 阅读全文
posted @ 2024-01-16 10:34 二氧化硅21 编辑
摘要:构造函数和析构函数 #include<iostream> using namespace std; class seqStack { private: int* _pstack; int _size; int _top; public: seqStack(int size) { _size = si 阅读全文
posted @ 2024-01-16 10:33 二氧化硅21 编辑
摘要:类和对象,this 面向对象的四大特性:抽象,封装/隐藏,继承,多态 属性一般都是私有的,向外提供公有方法以访问私有属性。 类本身不占内存,实例化对象占内存。 类体内定义的成员函数默认为内联,体外定义需要加inline修饰。 一个类可以定义无数的对象,每一个对象都有自己的成员变量,成员函数是公用的, 阅读全文
posted @ 2024-01-16 10:32 二氧化硅21 编辑
摘要:记录学习过程 阅读全文
posted @ 2024-01-11 23:17 二氧化硅21 编辑
摘要:new和delete new和malloc区别,delete和free区别 malloc和free,是C的库函数;new和delete,是运算符。 new不仅内存开辟,还能做内存的初始化,返回指针,如果开辟失败,抛出异常bad_alloc,而不是返回空指针;malloc只能进行内存开辟,返回指针,如 阅读全文
posted @ 2024-01-11 23:11 二氧化硅21 编辑
摘要:引用 引用和指针的区别 引用是一种更安全的指针。 引用必须初始化,指针可以不初始化。引用初始化为另一个同类变量,特殊情况下可初始化为常量。 引用只有一级,没有多级引用。 从汇编指令层面看。对引用的处理,是采用指针的方法。因为引用是一种const指针。通过引用变量修改所引用内存的值,与通过指针解引用修 阅读全文
posted @ 2024-01-11 23:10 二氧化硅21 编辑
摘要:函数重载 什么是函数重载:一组函数,函数名相同,但参数类型或个数不同。 C++为什么支持函数重载,但C不支持 本质是编译器产生符号的规则不一样:C++代码产生函数符号,由函数名和参数列表类型组成;而C代码产生函数符号,仅由函数名组成。当链接时,会发生符号的重定义。 重载的注意点 重载的前提是几个函数 阅读全文
posted @ 2024-01-11 23:09 二氧化硅21 编辑
摘要:const 怎么理解const? const修饰的变量不能再作为左值。即初始化后不能被修改。 C和C++中的const有什么区别? C中const量可以只定义,但不被初始化(之后无法再赋值),称作常变量。事实上,通过指针仍可修改变量的值。 C++中的const必须初始化,称作常量。通过指针不可修改变 阅读全文
posted @ 2024-01-11 23:09 二氧化硅21 编辑
摘要:内联函数 内联函数与普通函数的区别 inline函数:在编译过程中,就没有函数的调用开销了,在函数的调用点直接把函数的代码进行展开处理,符号表中也不产生内联函数符号。 函数的调用开销是什么:参数压栈,栈帧开辟,栈帧回退。 inline只是建议,不是所有inline被编译器处理为内联函数,比如递归,编 阅读全文
posted @ 2024-01-11 23:08 二氧化硅21 编辑
摘要:参数为默认值的函数 参数从右面开始给默认值。 如果不缺省参数,需要在汇编层面mov实参到寄存器,并push压栈此寄存器值;而如果缺省一个参数,在汇编代码层面,相当于少一句mov指令,而可以直接push一个立即数。从而提高效率。 定义和声明两阶段都可以给默认值,但二者只能给一次,即使定义和声明两阶段给 阅读全文
posted @ 2024-01-11 23:07 二氧化硅21 编辑
摘要:程序编译与链接原理 预编译:处理#命令,但保留#pragma,删除注释。 编译:词法分析、语法分析、语义分析和优化,生成汇编代码。 汇编:将汇编代码翻译成机器码(AT&T,x86语法),打包为可重定位二进制目标文件,此文件不可执行。输出符号表。 链接:合并.o文件段,合并符号表,解析并符号重定向。 阅读全文
posted @ 2024-01-11 23:04 二氧化硅21 编辑
摘要:进程的虚拟地址空间内存划分和布局 编程语言->产生指令和数据 程序生成exe可执行文件,加载到内存后(不是一步直接加载到物理内存中)如何存放。 x86 32位linux下,linux会给进程分配一块2的32次方大小的一块空间(4G),这块空间是一块虚拟内存空间,虚拟内存空间本质上是系列数据结构。 这 阅读全文
posted @ 2024-01-11 22:50 二氧化硅21 编辑
摘要:第二章 C++对C的拓展 2.1 C++命名空间基本常识 1、创建名字是程序设计过程中一项最基本的活动,当一个项目很大时,它会不可避免地包含大量名字。c++允许我们对名字的产生和名字的可见性进行控制。 我们之前在学习c语言可以通过static关键字来使得名字只得在本编译单元内可见,在c++中我们将通 阅读全文
posted @ 2024-01-09 10:39 二氧化硅21 编辑
摘要:第一章 C++概述 1.1 C++简述 1、与c语言一样,c++也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)在20世纪80年代在这里开发了这种语言。 2、c++融合了3种不同的编程方式: c语言代表的过程性语言. c++在c语言基础上添加的类代表的面向对象语言 阅读全文
posted @ 2024-01-09 10:38 二氧化硅21 编辑
摘要:第三章 类和对象 3.1 类和对象的基本概念 1、现实世界的事物所具有的共性就是每个事物都具有自身的属性,一些自身具有的行为,例如一个学生有姓名、性别、年龄等属性,吃饭睡觉玩游戏等行为。C++提供了类的概念,可以将某一类事物的所有属性和行为封装在一个class中。 2、类对于某个事物的描述其实还是抽 阅读全文
posted @ 2024-01-09 10:37 二氧化硅21 编辑

点击右上角即可分享
微信分享提示