- 博客(14)
- 收藏
- 关注
原创 C++模板:template
类的继承和包含并不总是能够满足重用代码的需要。比如在一些类当中,仅有其中几个成员的类型发生变化,其他的部分都完全一样,因此我们需要为这样细小的不同而创建好几个这样的类。例如下面这段代码,两个test类当中的成员类型不同,因此可选的做法便是创建两个类。这中做法会带来一个严重的问题:假如需求发生变化,这个变量类型再次发生改变,我们还需重新增加一个类。
2023-08-30 22:21:49 113
原创 C++异常处理:try、throw、catch
程序在运行时,总是会遇到一些错误,这些错误或者是导致程序无法运行,例如操作空指针,或是不符合正常运行的规律,例如除以0。因此,在C++程序当中就必须添加对应异常处理机制,在检测到指定的程序异常时,为保证程序正常运行,需要跳转至异常处理程序当中。
2023-08-24 23:18:05 371 1
原创 C++操作符重载:operator
对于正常情况,一元运算符(具有一个输入)建议作为成员函数,二元运算符(具有二个输入)建议为友元函数。::?这些操作符不能重载。这些操作符不能作为友元重载。>这些操作符通常建议作为友元重载,否则无法实现流的连续调用。
2023-08-07 20:58:10 232 1
原创 C++类的构造函数和析构函数
通常一个类,其内部包含有变量和函数,当我们想要使用类的时候,总是会不得不面临这样一个问题,需要对类进行初始化,否则内部这些变量就会是随机值,导致程序出现异常。为此,我们需要在使用类之前对它进行初始化,C++就提供了这样一类特殊的函数——构造函数,对类进行初始化。
2023-08-02 23:08:01 124
原创 C++this指针用法
this本身很容易理解:在C++所有类当中,都将刚开始看到this指针的时候,总会觉得奇怪,怎么会有这种用法。我们需要当前类的变量以及函数的时候,明明可以直接在类的内部直接调用,为啥会多此一举搞出个this呢?下面有这样一个场景:想求a,b 值最大的类,并将该类赋值给b。类base当中自带比较函数,如果出现b自身更大的情况,那么就必须要返回类自身。
2023-08-01 21:41:40 208
原创 C++内联函数: inline关键字
或着另外一种做法是,(即将函数头和函数代码,放在提供原型的地方),也可以实现inline的效果。两种方法,都可以实现内联函数inline。
2023-08-01 20:42:36 174 1
原创 C++类的访问权限:public、private、protected
继承方式基类成员特性派生类成员特性派生类对象访问publicpublicpublic可以直接访问publicprotectedprotected不可以直接访问publicprivateprivate不可以直接访问protectedpublicprotected不可以直接访问protectedprotectedprotected不可以直接访问protectedprivateprivate不可以直接访问privatepublicprivate。
2023-07-27 21:58:59 433 1
原创 C++宏定义 #define用法
#define是编译器预处理指令,通常我们称之为宏。宏在编译阶段起作用,将宏替换为定义时的文本,在最终编译完成的程序内是不存在的。这里的关键点在于替换!替换!替换!使用了宏的地方,就相当于使用了宏所定义的文本。宏主要有两种基本格式:第一种用法,只定义宏的名称。由于没有进行替换操作,这种用法通常用于编译时的配置。例如头文件管理,对每个.h文件进行如下的宏定义,可以防止编译器在编译时对相同的文件编译两次,在第二次遇到相同头文件时,会由于已经定义了_XXX_H_而自动忽略文件中的全部内容。(但这种方法并不能
2023-07-18 22:09:49 344 1
原创 C++引用 #include用法
搜索空间上: #include "" 大于 #inlcude ,因为#include "" 总是会搜索当前路径。搜索顺序上: #inlcude 总是从包含目录开始,#inlcude "" 总是从当前目录开始,然后搜索包含路径,两种搜索方式总是在找到对应文件的那一刻停止。对于那些既可以使用""也可使用编译的头文件,例如标准库文件,建议使用,而当前目录下的文件可以省去前面的长串相对地址,这样可以在一定程度上提高代码的编译效率。
2023-07-16 20:54:07 804 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人