C++杂乱笔记
文章平均质量分 58
琛翀
嵌入式领域小白一枚
展开
-
C++编程基础——虚析构函数
虚析构函数在实现继承关系时,通常将顶层父类的析构函数定义为虚函数(其直接子类和间接子类中的析构函数都将自动变为虚函数),这样做的意义:通过父类指针或引用释放堆区中的子类对象时,该子类对象的析构函数会被执行,否则不会被执行,将可能造成内存泄漏。#include <iostream>using namespace std;class A{public: virtual ~A() { cout << "~A()" << endl;原创 2022-04-01 13:11:34 · 1092 阅读 · 0 评论 -
C++编程基础——字符串类设计与实现实战
头文件:#ifndef _MYSTRING_H_#define _MYSTRING_H_#include <iostream>namespace dj{ class mystring { private: char* buff; public: mystring(); mystring(const char* str); mystring(const mystring& str原创 2022-04-01 13:06:23 · 1301 阅读 · 0 评论 -
C++编程基础——继承、对象类型转换、虚函数、多态
对象类型转换向上转型:子类类型转化为父类类型,有意义、安全、可以隐式进行。向下转型:从父类类型转化为子类类型,不一定有意义、也不一定安全、必须由我们自己进行强制类型转换。mutable关键字:异变的、可变的,该关键字修饰的变量总能被修改,不受 const 关键字的影响。虚函数(Virtual Function)用 virtual 关键字修饰的方法就是虚函数(虚方法)当用一个父类指针或引用指向某个子类对象时,通过这个指针或引用调用父类中的某个虚函数,如果子类重写(Override)了父类中的这个虚原创 2022-03-30 12:59:19 · 793 阅读 · 0 评论 -
C++编程基础——类中成员、对象数组、设计模式、继承
类中成员(Class Member)属性(成员变量)方法(成员函数)类型内部类:也称嵌套类类中(匿名)枚举类型的作用:可以将其枚举元素作为类级常量使用(简单场合下(整型)),相比静态常量更方便。非静态常属性只是对象级常量。属性也可以为引用成员,注意其初始化语法。对象数组(Object Array)数组元素为对象(类类型的数据)设计模式(Design Mode)常用设计模式:单例模式、工厂模式、观察者模式、代理模式等。单例模式的实现。继承(Inheritance)在某个已存在的类原创 2022-03-30 12:50:51 · 1203 阅读 · 0 评论 -
C++编程基础——new/delete与malloc/free区别、运算符重载等
new/delete 和malloc/free 的区别共同点:功能相同,new 和malloc 都是在堆区申请指定大小的内存空间,delete 和 free 都是释放指定的一块堆区内存空间(内部实现细节不同,不要混用)。不同点:new 和 delete 是 C++中新增的运算符,而malloc 和 free 是函数,所以运算符的执行效率比函数高(对于非对象数据)。对于非对象数据,它们基本没有区别。对于对象数据:使用 new 运算符在堆区给对象申请空间后,还会调用对像的某个匹配的构造函数,而m原创 2022-03-28 09:55:18 · 1067 阅读 · 0 评论 -
C++编程基础——static/const关键字、拷贝构造函数
紧接前一节内容:static/const关键字常对象、常对象引用、常对象指针:所表示的对象的属性是只读的,通过它们不能调用非常方法;常方法更加通用,它既能被常对象(常对象引用、常对象指针)调用,也能被非常对象(非常对象引用、非常对象指针)调用。如果常方法和非常方法构成重载,那么常对象(常对象引用、常对象指针)调用的将是常方法,而非常对象(非常对象引用、非常对象指针)调用的将是非常方法。static 关键字和 const 关键字可以联合使用,用于修饰属性或方法,即静态常属性和静态常方法。开发规范类原创 2022-03-25 21:57:13 · 583 阅读 · 0 评论 -
C++编程基础——构造函数、析构函数、static/const关键字
构造函数和析构函数构造函数:Constructor,也称为构造方法或构造器,主要用于对对象的属性进行初始化。它是一个特殊的方法,其特点如下:没有返回值,并且方法名必须和类名同名;和普通方法一样,也支持重载;每个对象在创建时(给对象分配完内存空间)必定会自动调用某一个匹配的构造函数,所以我们可以在构造函数中对对象进行初始化。我们通常不会去显式调用构造函数;注意:如果我们在类中没有定义任何构造函数,C++编译器会自动提供一个默认的无参构造函数,这个构造函数啥事没干。反之,只要我们自己定义了任何形原创 2022-03-25 14:04:32 · 1646 阅读 · 0 评论 -
C++编程基础——宏、函数、面向对象
函数函数重载(Function Overload)函数名相同,但形参类型列表不同(即形参的数量或类型不同)。默认参数(Default Argument)函数参数可以带默认值,简化函数调用。默认参数必须全部放在形参列表的最右边,并且必须连续排列。面向对象编程OOP:Object Oriented Program,面向对象编程。对象(Object):任何一个具体的事物。类(Class):具有相同特征的一些对象的抽象,并不是具体存在的事物。对象是类的实例(Instance),类是对象的抽象。原创 2022-03-24 09:27:48 · 232 阅读 · 0 评论 -
C++编程基础——基本数据类型、运算符、名字空间
C++编程基础C++ 于1982年左右诞生于美国贝尔实验室。C++:C Plus Plus,一门支持面向对象编程的高级语言。C++ 直接继承了C语言的几乎所有语法特性,并在此基础上新增了面向对象编程机制,比如类、对象、继承、多态等,还有一些对大型复杂软件项目开发有意义的语法特性,比如引用、重载、模板、RTTI、异常处理等。C++ 程序运行效率略低于 C语言,但开发效率远高于 C 语言。C++ 学习方法:C语言学会了就相当于已经学会了 C++ 大部分内容(85%),只需再学习一下 C++ 新增的内容原创 2022-03-23 09:40:03 · 733 阅读 · 0 评论