摘要: 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) { int temp = left; left = right; right = temp; } void Swap(double& left, double& right) { double 阅读全文
posted @ 2022-12-04 19:49 NcPhoton 阅读(26) 评论(0) 推荐(0)
摘要: 在C语言的学习中我们已经接触过内存管理,那么C++与C语言之间又有什么不同和相同的地方呢? C++内存分布 int globalVar = 1; static int staticGlobalVar = 1; void Test() { static int staticVar = 1; int l 阅读全文
posted @ 2022-12-04 19:49 NcPhoton 阅读(77) 评论(0) 推荐(0)
摘要: 运算符重载 本文包括了对C++类的6个默认成员函数中的赋值运算符重载和取地址和const对象取地址操作符的重载。 运算符是程序中最最常见的操作,例如对于内置类型的赋值我们直接使用=赋值即可,因为这些编译器已经帮我们做好了,但是对象的赋值呢?能直接赋值吗? 概念 C++为了增强代码的可读性引入了运算符 阅读全文
posted @ 2022-12-04 19:48 NcPhoton 阅读(60) 评论(0) 推荐(0)
摘要: 再谈构造函数 之前讲过构造函数的一些特性,再在这里补充下。 构造函数体赋值 class Date { public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; } private: i 阅读全文
posted @ 2022-12-04 19:48 NcPhoton 阅读(30) 评论(0) 推荐(0)
摘要: 日期类的实现 在前面学过默认成员函数后,我们就可以写一个简单的日期类了。 如何写呢?我们可以先分析分析。 日期类的成员变量都是int类型,那么构造函数是要显式定义的,成员变量都是int类型,因此浅拷贝即可。 因此拷贝构造、析构、赋值操作符重载都不需要我们显式定义,使用编译器生成的就好。 #inclu 阅读全文
posted @ 2022-12-04 19:48 NcPhoton 阅读(75) 评论(0) 推荐(0)
摘要: 析构函数 既然在创建对象时有构造函数(给成员初始化),那么在销毁对象时应该还有一个清除成员变量数据的操作咯。 概念 析构函数:与构造函数功能相反,析构函数不是完成对象的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成类的一些资源清理工作。 特性 析构函数是特殊的成员函数 阅读全文
posted @ 2022-12-04 19:48 NcPhoton 阅读(79) 评论(0) 推荐(0)
摘要: 类的6个默认成员函数 如果我们写了一个类,这个类我们只写了成员变量没有定义成员函数,那么这个类中就没有函数了吗?并不是的,在我们定义类时即使我们没有写任何成员函数,编译器会自动生成下面6个默认成员函数。 class S { public: int _a; }; 这里就来详细介绍一下构造函数。 构造函 阅读全文
posted @ 2022-12-04 19:47 NcPhoton 阅读(68) 评论(0) 推荐(0)
摘要: 拷贝构造函数 我们经常会用一个变量去初始化一个同类型的变量,那么对于自定义的类型也应该有类似的操作,那么创建对象时如何使用一个已经存在的对象去创建另一个与之相同的对象呢? 构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调 阅读全文
posted @ 2022-12-04 19:47 NcPhoton 阅读(51) 评论(0) 推荐(0)
摘要: 面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事拆分成不同的对象,靠对象之间的交互完成。 以外卖点餐系统为例: 外卖点餐有具体步骤有顾客点餐,商家做餐,外卖员送餐,C语言关注的是点餐的各个步 阅读全文
posted @ 2022-12-04 19:47 NcPhoton 阅读(45) 评论(0) 推荐(0)
摘要: 内联函数 C++中函数的使用我们已经比较清楚了,与C语言中函数的使用大多相同,主要是增加了重载的特性,对C语言的函数的一些缺陷做了一些补充。 那么对于一些比较简单却又经常使用的功能,我们在C语言中常常使用宏来替换,宏呢与函数相比没有栈帧的开辟,类型的检查,没有传参,仅仅是做一个替换,非常适合功能简单 阅读全文
posted @ 2022-12-04 19:46 NcPhoton 阅读(68) 评论(0) 推荐(0)