C++
userkiller
这个作者很懒,什么都没留下…
展开
-
C++小记(二)
关键字:类、权限、构造函数、析构函数类的定义,以及权限的相关知识,用一道经典题来解释:点与圆的位置关系定义两个类:Circle和Point//Circle.h#ifndef _CIRCLE_H#define _CIRCLE_Hclass Circle{private: //成员变量在类中默认私有权限,在结构体中默认公有 int m_r; int x0; in...原创 2018-07-23 13:04:02 · 140 阅读 · 0 评论 -
练练手:将之前写的冒泡排序改成函数模版实现
整个排序设计三个步骤:获取数组信息,排序,输出排好序的数组内容分别写成三个函数模版获取数组信息template <typename T>void get(T *array, int LEN){ for(int i = 0 ; i < LEN; i++) { cin >> array[i]; }}排序template <t...原创 2018-08-01 19:39:25 · 775 阅读 · 0 评论 -
C++小记(七)
关键词:模版C++提供两种模板机制:函数模板、类模板,使得程序(算法)可以从逻辑功能上抽象,把被处理的对象(数据)类型作为参数传递。模板把函数或类要处理的数据类型参数化,表现为参数的多态性,称为类属。模板用于表达逻辑结构相同,但具体数据元素类型不同的数据对象的通用行为。函数模板(function template) 所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具...原创 2018-08-01 19:36:00 · 111 阅读 · 0 评论 -
C++小记(九)上
关键词:STL标准模板库,容器STL概述STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采 用...原创 2018-08-08 14:21:55 · 220 阅读 · 0 评论 -
C++小记(八)
关键词:类型转换,异常抛出,输入输出流强制类型转换 在C语言中,任意类型之间都能进行强制类型转换,所以导致了C语言中强转过于粗暴,难于定位的 特点,在程序设计理论中强制类型转换是不被推荐的,应尽量避免使用。C++中同样有强制类型转换,只不过相较于C语言,C++将强制类型转换封装成了几种关键字:static_cast<T>(expr) reinterpret_cas...原创 2018-08-04 15:35:49 · 151 阅读 · 0 评论 -
练练手:类Employee
需求://公司有四种职位 经理(Manager) 技术人员(Technician) 销售(SaleMan) 销售经理(SaleManager)//每增加一个人,工号加1//薪资:经理 8000 技术人员 300/天 销售 总额*4% 销售经理 部门销售额*2%+4000这个小程序主要用于熟悉继承中多态,纯虚函数等上课内容Employee.h#ifndef _EMPLOYEE_...原创 2018-07-30 20:21:03 · 1726 阅读 · 1 评论 -
C++小记(六)
关键词:多态将多态之前先来说几个概念: 联编 联编是指一个程序模块、代码之间互相关联的过程。联编又分为两种:静态联编(static binding),是程序的匹配、连接在编译阶段实现,也称为早期匹配。重载函数使用静态联编。 动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编(迟绑定)switch 语句和 if 语句是动态联编的例子。结合实际,C+...原创 2018-07-30 19:50:44 · 151 阅读 · 0 评论 -
手动实现String类——MyString类
MyString.h#ifndef _MYSTRING_H#define _MYSTRING_H#include "iostream"using namespace std;class MyString{private: int m_len; char *m_data;public: MyString(); MyString(char *str); MyStri...原创 2018-07-27 14:14:01 · 895 阅读 · 1 评论 -
C++小记(四)
关键词:运算符重载,友元类友元类接上一篇结尾,友元类运用较少,但友元函数在运算符重载中扮演重要地位,用全局函数重载运算符都需要声明为友元函数,不然无法访问类中的成员变量下面举例友元类:class Complex{ friend class A; //友元类A的声明private: int m_a; int m_b;public: Complex();...原创 2018-07-27 14:07:07 · 106 阅读 · 0 评论 -
练练手:建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。
这个简单的小程序是对类的继承做的一个小巩固要求如下:(1)形状类Shape(a)保护数据成员double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。(b)公有成员函数构造函数Shape(double _x,double _y):用_x...原创 2018-07-29 09:24:07 · 1508 阅读 · 0 评论 -
C++小记(五)
关键字:继承继承的概念 继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。 继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A,那么 B 就拥有 A 的成员变量和成员函数。被继承的类称为父类或基类,继承的类称为子类或派生类。 派生类除了拥有基类的成员,还...原创 2018-07-29 08:32:03 · 139 阅读 · 0 评论 -
C++小记(一)
Namespace 命名空间 作用:避免重复定义,解决合作开发中命名冲突的问题 例:#include <iostream>using namespace std;namespace A{ int a = 1; void print() { cout << "namespace A" << endl; }}...原创 2018-07-19 10:11:28 · 135 阅读 · 0 评论 -
C++小记(三)
关键字:初始化列表,构造函数和析构函数的调用顺序,对象的动态建立和释放,静态成员变量和静态成员函数初始化列表:1)对象初始化列表出现原因1.必须这样做:如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。...原创 2018-07-24 20:20:29 · 155 阅读 · 0 评论 -
C++小记(九)下
关键词:算法算法部分主要由头文件<algorithm>,<numeric>和<functional>组成。<algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、反转、排序、合并等等。 <numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括...原创 2018-08-08 14:35:22 · 235 阅读 · 0 评论