
C++
Mrsmiles
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Qt算法与正则表达式
Qt常用算法: 函数qAbs(value),返回value型数值的绝对值。 qMax(a,b):函数qMax(a,b)返回两个数值中的最大值。 qRound(b):函数qRound()返回与一个浮点数最接近的整数值,即四舍五入返回一个整数值。 qSwap(a,b):函数qSwap()交换两数的值。 例如我们可在main.cpp中主函数main中加入如下内容:double b=-11.3,c=9.6;double d=qAbs(b);double max=qMax(c,d原创 2020-05-29 12:30:12 · 562 阅读 · 0 评论 -
Static修饰类成员数据
静态成员变量: 关键字 static 可以用于说明一个类的成员,静态成员提供了一个同类对象的共享机制 把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员,静态成员局部于类,它不是对象成员:class counter{public: void setnum(int i) ...原创 2019-07-07 20:44:14 · 322 阅读 · 0 评论 -
二进制文件的读写操作
二进制文件不是以 ASCII 代码存放数据的,它将内存中数据存储形式不加转换地传送到磁盘文件,因此它又称为内存数据的映像文件。因为文件中的信息不是字符数据,而是字节中的二进制形式的信息,因此它又称为字节文件。对二进制文件的操作需要先打开文件,用完后要关闭文件。在打开时要用 ios::binary指定为以二进制形式传送和存储。二进制文件除了可以作为输入文件或输出文件外,还可以是既...原创 2019-06-27 21:35:22 · 3447 阅读 · 0 评论 -
集合算法
set_union(),set_intersection(),set_difference() set_union: 构造一个有序序列,包含两个有序序列的并集。 set_intersection: 构造一个有序序列,包含两个有序序列的交集。 set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。...原创 2019-06-27 21:36:18 · 1267 阅读 · 0 评论 -
类模板类内实现MyArray数组类
#include <iostream>using namespace std;template <class T>//模板标识class MyArray{public: MyArray(int cap) { mCap = cap; mSize = 0; arr = new T...原创 2019-07-17 10:18:02 · 988 阅读 · 0 评论 -
c++单例模式
单例模式是一种常用的软件设计模式,核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例并且该实例易于外界访问,从而方便对单例个数的控制并节约系统资源。实现单例步骤1、构造函数私有化2、增加静态私有的当前类的指针变量2、提供静态对外接口,可以让用户获得单例对象单例模式分为:懒汉模式、饿汉模式。 区别:饿汉模式运行时已经创建好,而懒...原创 2019-07-26 20:47:44 · 249 阅读 · 0 评论 -
拷贝构造—深拷贝与浅拷贝
拷贝构造函数用一个已有同类对象的数据对正在建立的对象进行数据初始化C++为类提供默认版本的拷贝构造函数默认复制构造函数可以完成对象的数据成员值简单的复制对象的数据资源是由指针指示的堆时,默认复制构造函数仅作指针值复制,即为浅拷贝class TeacherT{public: TeacherT(int id,char* name) { mid = id; mname =...原创 2019-07-26 20:50:59 · 198 阅读 · 0 评论 -
C++异常处理机制
我们在程序运行时常会碰到一些异常情况,例如:做除法的时候除数为 0;用户输入年龄时输入了一个负数;用 new 运算符动态分配空间时,空间不够导致无法分配;访问数组元素时,下标越界;打开文件读取时,文件不存在。这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃。所谓“处理”,可以是给出错误提示信息,然后让程序沿一条不会出错的路径继续执行;也可能是不得不结束程序,...原创 2019-08-07 11:13:37 · 486 阅读 · 0 评论 -
二叉树
二叉树:是n(n≥0)个结点的有限集合。n=0的树称为空二叉树;n>0的二叉树由一个根结点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成 。逻辑结构: 一对二(1:2)基本特征:① 每个结点最多只有两棵子树(不存在度大于2的结点);② 左子树和右子树次序不能颠倒。所以下面是两棵不同的树注意:二叉树不是有序树满二叉树:在一棵二叉树中,如果所有分支结点都存在...原创 2019-08-07 11:15:59 · 180 阅读 · 0 评论 -
C++对C的增强:三目运算符
三目运算符在 C 和 C++编译器的表现 //C: #include <stdint.h> #include <stdio.h> #include <stdlib.h>int main(){int a = 10;int b = 20;//返回一个最小数 并且给最小数赋值成 50//三...原创 2019-08-18 10:23:58 · 380 阅读 · 0 评论 -
类与类之间的关系
类与类之间的关系对于理解面向对象具有很重要的作用,类与类之间存在以下关系:泛化表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。[具体表现]父类 父类实例=new 子类()[代码表现] class Animal{}class Tiger extends Animal{}...原创 2019-08-18 10:33:50 · 666 阅读 · 0 评论 -
构造函数与析构函数
构造函数:构造函数是用于创建对象的特殊成员函数当创建对象时,系统自动调用构造函数构造函数的作用是:为对象分配空间;对数据成员赋初值;请求其他资源没有用户定义的构造函数时,系统提供缺省版本的构造函数构造函数名与类名相同:类名构造函数可以重载构造函数可以有任意类型的参数,但没有返回类型析构函数:析构函数是用于取消对象的成员函数当一个对象作用域结束时,系统自动...原创 2019-07-07 20:42:55 · 218 阅读 · 0 评论 -
C++类型转换
C 风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)aC++风格的类型转换提供了 4 种类型转换操作符来应对不同场合的应用。static_cast 静态类型转换。如 int 转换成 charreinterpreter_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换。如子类和父类之...原创 2019-06-17 22:39:49 · 133 阅读 · 0 评论 -
C++函数重载
开发工具与关键技术:C++,Vs2015作者:唐国铭撰写时间:2019年04月17日函数重载:用同一个函数名定义不同的函数,当函数名和不同的参数搭配时函数的含义不同。重载规则:1,函数名相同。2,参数个数不同,参数的类型不同,参数顺序不同,均可构成重载。3,返回值类型不同则不可以构成重载。例如: void func(int a); //okvoid func(char[]...原创 2019-04-17 22:24:56 · 276 阅读 · 0 评论 -
数组
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~开发工具与关键技术:C++,Vs2015作者:唐国铭撰写时间:2019年04月17日~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...原创 2019-04-27 22:17:52 · 118 阅读 · 0 评论 -
函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~开发工具与关键技术:C++,Vs2015作者:唐国铭撰写时间:2019年04月20日~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...原创 2019-04-27 22:34:48 · 115 阅读 · 0 评论 -
浅析struct和class
封装和访问控制: struct结构体:当单一变量无法完成描述需求的时候,结构体类型解决了这一问题,可以将多个类型打包程一体,形成新的类型。例如: #include <iostream>using namespace std;//结构体struct Date{int year;int month;int day...翻译 2019-05-07 21:19:17 · 157 阅读 · 0 评论 -
运算符重载
所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。运算符也可以重载,而在平常操作中对于int…一些类型的数学运算,计算机已经对此进行了重载,而对于自己定义的类型则无法使用数学运算,这时就需要自己对此进行重载操作。运算符重载的本质是函数重载。运算符重载的规则:用于类对象的...原创 2019-05-16 22:20:33 · 262 阅读 · 0 评论 -
函数模板
重载函数通常基于不同的数据类型实现类似的操作 对不同数据类型的操作完全相同,用函数模板实现更为简洁方便 关键字template 语义是模板的意思,尖括号中先写关键字 typename 或是 class ,后 面跟一个类型 T...,此类即是虚拟的类型语法格式: template<typename T> template<cl...原创 2019-05-16 22:32:53 · 181 阅读 · 0 评论 -
纯虚函数与抽象类
纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本 纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分) 纯虚函数说明形式: virtual 类型 函数名(参数表)=0; 一个具有纯虚函数的基类称为抽象类: 1,含有纯虚函数的类,称为抽象基类,不可实列化。即不能创建对象,存在 的意义...原创 2019-05-27 21:51:48 · 894 阅读 · 0 评论 -
C++动态内存
C++ 程序中的内存分为两个部分:栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。很多时候,无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在C++ 中,可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即new 运算符。如果不再需要...翻译 2019-05-27 21:53:39 · 145 阅读 · 0 评论 -
继承和派生
在 C++中可重用性(software reusability)是通过继承(inheritance)这一机制来实现的。类和类之间的关系has-A,uses-A 和is-Ahas-A 包含关系,用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类。uses-A 一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义...翻译 2019-06-09 11:00:41 · 255 阅读 · 0 评论 -
C++STL_sort()算法
sort: 以默认升序的方式重新排列指定范围内的元素。若要改排序规则,可以输入比较函数。class Student{public: Student(string name, int id) //构造函数 { m_name = name; m_id = id; } void printT() {...翻译 2019-06-17 22:36:11 · 568 阅读 · 0 评论 -
C++循环类型与使用
开发工具与关键技术:C++,Vs2015作者:唐国铭撰写时间:2019年04月15日有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组C++ 编程语言提供了以下几种循环类型:While循环:当给定条件为真时,重复执行语...原创 2019-04-17 22:20:05 · 418 阅读 · 0 评论