自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 二十七、C++ 桥接模式

【代码】二十七、C++ 桥接模式。

2023-12-03 00:32:18 98

原创 二十六、C++ 单例模式

每一个想要获取实例化对象,都要调用 getInstance() 函数。但是它不去调用这个,而是直接 new Singleton,怎么避免?

2023-12-02 23:55:00 78

原创 二十五、C++ Android轻量级指针

【代码】二十五、C++ Android轻量级指针。

2023-11-26 22:03:32 97

原创 二十四、C++ 智能指针

有两种操作: per->XXX, (*per).XXX。重载这两个符号: -> *

2023-11-26 18:28:45 142

原创 二十三、C++ 异常

【代码】二十三、C++ 异常。

2023-11-26 16:02:20 65

原创 二十二、C++ 类模板

【代码】二十二、C++ 类模板。

2023-11-26 15:11:54 67

原创 二十一、C++ 函数模版重载

a、先列出候选函数,包括普通函数、参数推到成功的函数模版. . . . . .

2023-11-25 23:13:27 64

原创 二十、C++ 函数模版

const转换 函数参数为非const 引用/指针,它可以转换为const 引用/指针。a、const转换 函数参数为非const 引用/指针,它可以转换为const 引用/指针。参数为“函数的名字时”,它隐式转换为函数指针。数组可以隐式转换为“指向第一个元素的指针”参数为“函数的名字时”,它隐式转换为函数指针。数组可以隐式转换为“指向第一个元素的指针”如果不能直接匹配,则可以进行“有限的类型转换”如果还不匹配,推导失败。b、数组或函数指针转换。参数类型必须完全匹配。

2023-11-25 18:46:01 76

原创 十九、C++ 抽象类界面(下)

这样写makefile的好处:修改English.cpp,不用重新生成Human,只重新生成libHuman.so。一个是类编程: 提供类,比如Englishman、 Chinese。修改类的时候,并不用重新生成这些应用程序。一个是应用编程:Human,使用这些类。

2023-11-22 23:25:29 106 1

原创 十八、C++ 抽象类界面(上)

如果再增加一个国家,增加一种函数,太麻烦了,需要实现很多函数。

2023-11-19 22:32:30 75

原创 十七、C++ 抽象类

如果Chiness 中没有实现 driving函数,那么 Chiness 还是一个抽象类,不能用来是实例化对象。virtual void eating(void) 这些函数没必要在基类里面实现,派生类里面肯定提供这些函数。纯虚函数 含有纯虚函数的类 称为抽象类,抽象类不能用来实例化对象,它是用来给派生类定义好框架。做一个"各个国家的人"的调查:饮食、穿衣、开车...

2023-11-19 21:53:57 76

原创 十六、C++ 类型转换

类有虚函数,它的对象里面就含有一个指针, 指向一个表,表含有类信息,从类信息里面知道这个对象是属于哪个类的、继承信息。该运算符把 expression 转换成 type-id 类型的对象。为什么称为动态类型转换?type-id 必须是类的指针、类的引用或者 void*;如果 type-id是指针,expression必须也是指针。如果 type-id是引用,expression必须也是引用。上行:派生类对象转化为基类对象。下行:基类对象转化为派生类对象。前面是指针,下面改为引用。动态类型转换就是根据。

2023-11-19 17:13:09 77

原创 十五、C++ 类型转换

reinterpret_cast < type-id > 表明为模版函数。(expression) 表明为函数,expression是参数。注意:其不能把原有的 const 只读属性转换成可读可写属性。

2023-11-19 16:12:49 79

原创 十四、C++ 多态

之所以引入虚函数,是为了引入多态多态就是使用相同的调用方法,对不同的对象,它会调用不同类里面实现的函数public:public:public:h.eating();Human h;Chinese c;return 0;

2023-11-19 15:33:34 76

原创 十三、C++ 再论构造函数

虚拟基类:LeftRightCom 排在第三个。

2023-11-16 22:38:41 96 1

原创 十二、C++ 多重继承

a.一个派生类可以有多个基类b.可能有二义性,解决办法:虚拟继承,Softbed的基类Soft、Bed共享一个Furniture对象尽量避免使用多重继承,它使得程序变得十分复杂。

2023-11-15 22:30:41 79

原创 十一、C++ 访问控制和继承

2.可以问父亲要钱:通过protected/public 的成员函数。1.不能直接拿父亲的私房钱:派生类不能访问基类的私有成员。protected:外接不可见,不能直接访问;派生类可以访问 protected成员,其他代码不可以。可以访问保护成员,不能在main函数里面访问。儿子继承来的财产,他可以捐给别人,也可以私藏。private:外界不可见,不能直接访问。到的成员,Son可以修改它的权限,a. 抽象出数据成员、成员函数。public:外接可以直接访问。

2023-11-13 23:02:07 82

原创 十、C++ 运算符重载

值返回:返回函数内部定义的局部变量,该变量在函数执行时被创建,执行完毕时被销毁,只返 回值,效率低。选择原则:不影响运算结果,效率优先。

2023-11-12 18:39:36 88 1

原创 九、C++ 静态成员以及友元

这个值 cnt 应该属于整个 Person类,只有一份,而不是属于某一个对象,怎么体现这一点?cnt:记录用Person类实例化了多少个对象,在构造函数里面进行 cnt++改进:把add设置成class的朋友,可以直接访问private。因为我们想在所有对象创建之前,就定义和初始化静态数据成员。在main函数之外定义和初始化静态数据成员,为什么?可以通过对象来调用getCount( )静态成员函数可以在类里面声明并定义。缺点:相加需要调用6个函数,效率低。也可以在类里面声明,在外面定义。

2023-11-12 16:55:21 113 1

原创 八、C++ 构造函数(下)

按进行中定义对象的顺序调用构造函数,全局对象在main函数执行前被构造。静态对象值调用一次构造函数,

2023-11-09 22:17:00 90 1

原创 七、C++ 构造函数(中)

释放per时,会把name对应内存释放掉,释放per2时,再次释放name对应内存。Person(Person &per) //拷贝构造函数。所以现在不能使用默认的拷贝构造函数,需要自己实现。没有构造、析构函数,系统默认为空函数。它们指向同块内存,会带来什么隐患呢?会调用默认的拷贝构造函数,把。

2023-11-09 07:25:45 82 1

原创 六、C++ 构造函数(上)

构造函数就是和类名相同的函数,可以带参,也可以不带参private:char *name;int age;char *work;age = 0;return -1;age = a;return 0;return 0;C语言中 ( ) 一般对应函数的调用,定义了一个Person 类的对象,它会导致呢个函数被调用呢?导致类里面相应构造函数被调用,/* 调用两个参数的构造函数 *//* 调用无参的构造函数 */

2023-11-08 22:51:11 89 1

原创 五、C++ 重载、指针和引用

不能通过返回值的不一样重载函数,无法通过返回值来分辨调用哪个函数。函数名相同,参数不一样(类型、数量、顺序不一样)通过参数的不一样来调用不同的函数。怎么去分辨调用那一个函数呢?通过参数的不一样重载函数,

2023-11-08 21:57:36 122 1

原创 四、C++ 程序结构(下)

h/.cpp文件中//声明或定义函数int fun();...调用者源文件中1.直接使用:2.using声明//以后调用fun即表示a::fun3.using编译//以后调用fun,fun2即可。

2023-11-08 08:07:02 87 1

原创 三、C++程序结构(上)

----员工B实现Person类,person.h 供员工A使用, 在person.cpp中实现Person类。-----员工A实现 main.cpp,不关心函数的内部实现,只关心怎么去调用它,所以包含person.h即可。b. person.h 提供给main函数用,写main函数的人看这个头文件即可。两个cpp都实现了void printVersion(void),函数名称一样,返回值一样,参数一样,但内部实现不一样。c. person.cpp 实现函数。函数名称一样,返回值一样,参数一样,

2023-11-07 22:56:23 101

原创 二、C++ 访问控制

per.name = "zhangsan" 不能直接访问私有数据;把数据成员屏蔽起来,只能通过函数方法来设置;

2023-11-07 21:55:40 123

原创 一、C++ 面向对象、类的引入

C++入门学习,C++基础知识

2023-11-06 21:42:49 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除