c++
文章平均质量分 81
~澄~
一个菜鸡
展开
-
c++之模板
什么是模板模板就是样板。在这里我举一个例子,数组数组可以是int,可以是double,可以是long等模板的本质就是把数据类型参数化,体现了面向对象的多态性函数模板和模板函数函数模板表示的是对不同数据类型数据进行相同处理的一类函数模板函数就是讲函数模板实例化生成的具体函数格式template <class 模板形参1,class模板形参2,...>返回类型 函数名(参数表){ 函数体}举例:表明两个相同数据类型比较大小返回大的元素template<class原创 2020-06-22 10:10:17 · 198 阅读 · 0 评论 -
c++之运算符重载
什么是运算符重载运算符重载类似函数重载是为已有的运算符定义新的运算功能,体现了多态性。举个例子“+”的基本功能是实现整数相加和实数相加通过运算符重载我们可以对他的功能进行扩充,我们之前用的string类中就是如此string a=“123’,b=“456”,c;则 c=a+b;c就为"123456”这里"+"被重载为两个字符串拼接实现运算符重载功能的函数称为于是暖夫重载函数,格式为返回类型 operator 运算符符号(参数说明);运算符重载的两种形式用成员函数实现运算符重载举例子原创 2020-06-21 23:56:03 · 373 阅读 · 0 评论 -
c++之输入输出流
c++流的概念流是有向数据流动的描述,指数据流动的物理通道和方向。在C++中数据的输入输出是以字节为单位,以字节流的形式实现。数据从输入设备流向内存称为输入流,数据从内存流向输出设备称为输出流c++中的输入输出流的处理功能组织成下图流类库流类库istream类,标准输入流,支持流输入操作ostream类,标准输出流,支持流输出操作iostream类,通过多重继承从istream和ostream类派生而来,同时支持流输入和流输出ifstream类支持文件流输入操作ofstream类支原创 2020-06-21 12:40:14 · 760 阅读 · 0 评论 -
c++之虚继承(多重继承的问题)
导引:多重继承和多继承什么是多重继承:如图什么是多继承:如图继承中的特殊结构菱形继承结构带来的问题,D会有两个A中的数据成员class A{public: int a;};class B:public A{public: int b;};class C:public A{public: int c;};class D:public B,public C{public: int d;};D中会有两个a一个是从B继承的,一个是从C继承的出现这样的问题,原创 2020-06-13 13:56:11 · 1665 阅读 · 1 评论 -
c++之虚函数
一、静态联编与动态联编静态联编也叫做早绑定,函数名与其在内存中的可执行代码之间的对应关系在编译时就已经确定了动态联编也叫做晚绑定,是之成员函数的调用语句在编译时不知道要执行哪个内存地址的代码。成员函数的调用会根据目标对象的动态类型在程序运行时将函数名绑定到具体的函数上静态联编举例class Shape{public: double calculateArea(){ cout<<"caculateArea"<<endl; return 0; }};class原创 2020-06-12 21:06:32 · 200 阅读 · 0 评论 -
c++之继承中的特殊关系
一、隐藏如果基类和派生类中有同名的数据成员或者成员函数,在实例化派生类对象,调用该方法将会调用派生类的方法,而基类的方法虽然被继承但是看起来被隐藏一样举例:class People{public: void eat(){cout<<"吃饭"<<endl;}};class Student:public People{public: void eat(){cout<<"吃学校的饭菜"<<endl;}};当我们实例化一个Student对原创 2020-06-03 19:28:41 · 283 阅读 · 0 评论 -
c++之友元函数和友元类
什么是友元?友元就是朋友,c++中为了方便访问某个类的私有成员,引入了友元的概念友元用 “friend” 定义友元函数友元函数分为两种友元全局函数友元成员函数友元全局函数class Coordinate{ friend void printXY(Coordinate &c);publuc: Coordinate(int x,int y){...}//这里省略赋值内容private: int x; int y;};//全局定义void printXY(Coord原创 2020-05-11 16:22:56 · 528 阅读 · 0 评论 -
c++之静态数据成员与静态成员函数
什么是静态数据成员?数据成员我们之前学过,是对象的属性。同一个类,不同的对象,可能拥有不同的属性例如一个车行,不同的车有不同的颜色,不同的耗油量。。。等等属性但是当我们统计一个公有的数据,用数据成员有点麻烦比如每一辆Car,里面有一个数据成员CarNum,记录了车行的总车数,如果每一个对象,都分别带着CarNum这个数据成员,会有些不方便。为此,我们需要一个类公有的数据成员,就是静态数据成员每个对象与静态数据成员关系如下图静态数据成员的定义以及初始化静态数据成员用关键字 “static原创 2020-05-11 09:28:20 · 2813 阅读 · 0 评论 -
c++之继承
什么是继承我们还是举例王者荣耀的例子,之前在类和对象那篇文章我们说,王者荣耀中英雄的属性就是数据成员,英雄的技能就是成员函数下面为亚瑟这个英雄的类class Yase{ //属性 int hp;//生命 int wg;//物攻 int fq;//法强 int wk;//物抗 int fk;//法抗 int mj;//敏捷 //方法 //方法就是一个函数,让这个函数执行一些操...原创 2020-03-30 14:47:45 · 350 阅读 · 0 评论 -
c++之const与对象
1.常对象成员class Coordinate{public: Coordinate(int x, int y):m_ix(x),m_iy(y){} ~Coordinate(){}private: int m_ix; int m_iy;};我们把用const修饰的对象成员叫做常对象成员class Line{public: Line(int x1, int y1, in...原创 2019-10-13 15:40:23 · 164 阅读 · 0 评论 -
c++之对象指针
对象指针对象指针,就是有一个指针,它指向一个对象举例class Coordinate//坐标类{public: int x; int y;};//当我们从堆中实例化对象Coordinate *p = new Coordinate;//那么p就是指向那个对象的指针//*p就是那个对象对象成员指针什么是对象成员指针?回顾:什么是对象成员?对象成员就是一个对象它成为另一...原创 2019-10-12 13:09:29 · 224 阅读 · 0 评论 -
c++之深拷贝和浅拷贝
一、拷贝构造函数拷贝构造函数是什么?当用另一个对象来实例化一个新的对象时,调用的不是我们之前定义的普通构造函数,而是调用拷贝构造函数。我们可以拷贝构造函数中将要拷贝的对象的一些数组成员复制新的实例化对象。简而言之,拷贝构造函数用于对象的复制。定义格式类名(const 类名&变量名)Student(const Student &stu) //其中stu是被拷贝的对象变量名...原创 2019-10-03 21:00:43 · 192 阅读 · 0 评论 -
c++之对象数组和对象成员
一、对象数组对象数组就是一个数组,里面的每一个元素都是一个对象定义方法:类名 数组名称[number];类名 指针 = new 类名[number];例如:Teacher teachers[10];Teacher *p = new Teacher[10];二、对象成员对象成员就是一个对象的数据成员是另一个对象例如Line类的数据成员可以是一个Coordinate类class C...原创 2019-10-03 17:01:11 · 1388 阅读 · 0 评论 -
c++之构造函数
什么是构造函数构造函数就是一种函数,他的特点是在对象实例化的时候会自动调用,一般用于数据初始化规则:1、构造函数与类同名2、构造函数没有返回值(所以写构造函数连void都不用写)3、构造函数可以有多个重载形式(重载就是参数类型不同,个数不同,顺序不同)4、实例化对象时仅用到一个构造函数5、如果没定义构造函数,编译器自动生成一个构造函数Yase.hclass Yase{publ...原创 2019-08-12 16:10:25 · 296 阅读 · 0 评论 -
c++之类外定义
什么是类外定义类外定义就是把类中的成员函数(方法)写在类的外面类外定义又分为两个类型:1、同文件类外定义2、分文件类外定义1、同文件类外定义同文件类外定义就是在同一个文件进行类外定义下面是Yase.cpp文件#include <iostream>using namespace std;class Yase{public: void f1();//1技能 v...原创 2019-08-12 15:07:10 · 2527 阅读 · 0 评论 -
c++之类与对象
什么是类,什么是对象?类就是一类具有共同特征的群体对象是这类群体的某一个具体的个体上面的描述很迷,接下来我们通过一个游戏的例子来解释一下什么是类,什么是对象。你现在玩王者荣耀克隆模式,假设十个亚瑟在对线,亚瑟这个英雄就可以说是一个类,而你操作的那个亚瑟是独一无二的,是一个具体的对象。类的特征—属性和方法每一个类都有他的属性和方法,我们可以看看亚瑟的属性和方法亚瑟:属性:{生命...原创 2019-08-12 14:00:57 · 337 阅读 · 0 评论 -
c++之函数新特性
1、 函数参数默认值void fun(int i,int j=5;int k=10);void fun(int i,int j=5,int k);//错误,没有默认值的参数放前面2、函数重载什么是函数重载?在相同的作用域内,用同一函数名定义的多个函数参数个数和参数类型不同int getMax(int x,int y,int z){ //to do}double get...原创 2019-09-30 09:15:15 · 175 阅读 · 0 评论 -
c++之内存管理
什么时内存管理申请/归还内存资源就是内存管理c++中内存的申请和释放申请内存 => new 释放内存 => delete//申请和释放一个内存int *p = new int;delete p;//申请和释放一块内存int *arr = new int[10];delete []arr;内存操作注意事项回顾:c语言用 malloc()和 free...原创 2019-09-30 09:27:33 · 134 阅读 · 1 评论 -
c++之const
控制变化的constconst 这个关键字是用来控制变量是否可以变化的const 与基本数据类型int x=3;//变量变量名存储地址存储内容x&x3const int x=3;//常量,x无法更改变量名存储地址存储内容x&x3...原创 2019-09-18 09:11:34 · 76 阅读 · 0 评论 -
c++之引用
什么是引用?引用就是指变量的别名。别名只能用在已有的变量上,不可以直接用别名基本数据类型的引用int 类型引用#include <iostream>using namespace std;int main(){ int a=3; int &b=a; //初始化引用 b=10; cout << a <<endl; return...原创 2019-09-16 12:42:29 · 136 阅读 · 0 评论 -
c++之命名空间(namespace)
什么是命名空间?假设A班有一个人叫小王,B班也有一个人叫小王。如果你在年级会议上叫小王,无法确认是A班的小王,还是B班的小王。但是如果你叫A班小王,那么就不会引起误会。这里的A班,就可以理解为命名空间体现在程序里,可以理解为,同一个名字的变量或者函数,在不同的程序库中如何定义命名空间命名空间关键字:namespacenamespace A{ int x=1; void f1(...原创 2019-08-02 00:46:37 · 186 阅读 · 0 评论 -
c++之从c语言过渡到c++
一、c++中新的数据类型我们先看看c的数据类型这些就是c语言数据类型而在c++中新增bool(布尔类型)其值为true或false,这种类型是c语言中没有的。二、c++中的初始化方法c语言的初始化方法c++的初始化方法赋值初始化 int x=1024 ;赋值初始化 int x=1024;直接初始化 int x(1024);三、c++中随用随定义...原创 2019-08-01 21:31:30 · 2126 阅读 · 1 评论