
C++
C++
FG.
在等你
展开
-
2021-06-04
C++纯虚函数和抽象类在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容,因此可以将虚函数改为纯虚函数。纯虚函数的语法:virtual 返回值类型 函数名 (参数列表)=0;当类中有了纯虚函数,这个类也称为抽象类。抽象类特点:1.无法实例化对象2.子类必须重写抽象类中的纯虚函数,否则也属于抽象类#include<iostream>using namespace std;//纯虚函数和抽象类 class Base{ public: //纯虚函数原创 2021-06-04 12:23:07 · 105 阅读 · 0 评论 -
2021-05-27
C++运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型1.加号运算符重载作用:实现两个自定义数据类型相加的运算#include<iostream>using namespace std;//加号运算符重载 class Person{ public: //1.成员函数重载+号 //Person operator+(Person &p) //{ // Person temp; // temp.m_A=this原创 2021-05-31 21:03:12 · 242 阅读 · 0 评论 -
2021-05-21
C++ 类模板的使用:动态数组的实现实验目的:1、掌握类模板定义的一般格式2、掌握类模板数据成员定义与成员函数定义格式及其使用(含类模板外定义成员函数)实验内容:1、定义MyArray类,其数据成员有:数组长度length、指向动态数组的指针p2、定义相关构造函数、析构函数3、定义display()函数显示数组中的数据4、定义modifyArray()函数修改数组的长度和元素,要求函数定义在类体之外具体如下:步骤1、int main(){ MyArray<int> a(原创 2021-05-21 21:03:04 · 158 阅读 · 0 评论 -
2021-05-13
1. C++初始化列表作用:C++提供了初始化列表语法,用来初始化属性。语法:构造函数():属性1(值1),属性2(值2)…{ }#include<iostream>using namespace std;//初始化列表class Person{ public: //传统初始化操作 //Person(int a,int b,int c) //{ // m_A=a; // m_B=b; // m_C=c; //} //初始化列表初始化属性 Perso原创 2021-05-13 00:25:33 · 157 阅读 · 1 评论 -
2021-05-02
C++友元函数友元的三种实现1.全局函数做友元2.类做友元3.成员函数做友元1.全局函数做友元#include<iostream>#include<string>using namespace std;class Building{ //goodgay全局函数是类Building的好朋友,可以访问类Building中私有成员 friend void goodgay(Building *building); public: Building() {原创 2021-05-02 23:56:20 · 146 阅读 · 2 评论 -
2021-05-02
C++排序函数sort.基础使用使用方法:默认从小到大排序sort(a+m,a+n); //(a+m.a+n)范围内的元素进行排序 a+m就是取地址sort(a+m,a+n,cmp) //cmp是函数 或仿函数样例#include<iostream>#include<algorithm>using namespace std;int a[100]={5,1,8,4,2,5,7,4,9,10}int main(){ sort(a+0,a+10); /原创 2021-05-02 20:47:13 · 100 阅读 · 0 评论 -
2021-04-10
构造函数和析构函数构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。1.1构造函数语法:类名(){}构造函数,没有返回值也不写void函数名称可以有参数,因此可以发生重载函数名称与类名相同程序在调用对象时会自动调用构造,无须手动调用,而且只会调用一次1.2析构函数语法:~类名(){}析构函数,没有返回值也不写void函数名称与类名相同,在名称前加上符号~析构函数不可以有参数原创 2021-04-10 22:30:46 · 133 阅读 · 0 评论 -
2021-04-09
封装练习案例案例1:设计立方体类(Cube),求出立方体的面积和体积,分别用全局函数和成员函数判断两个立方体是否相等。class Cube{ public: //行为 //设置获取长宽高,设置立方体面积,获取立方体体积 private: //属性 m_L m_W m_H }#include<iostream>using namespace std;class Cube{ public: void setL(int l) //设置长 {原创 2021-04-09 23:52:02 · 109 阅读 · 0 评论 -
2021-04-09
类和对象封装语法:class 类名{ 访问权限:属性/行为};示例一:设计一个圆类,求圆的周长。#include<iostream>using namespace std;const double PI=3.14;//1.封装的意义 //将属性和行为作为一个整体,用来表现生活中的事物//封装一个圆类,求圆的周长// class代表设计一个类,后面跟着的是类名class Circle{ public://访问权限 公共的权限 //属性 int m_r;//半径原创 2021-04-09 23:51:50 · 162 阅读 · 0 评论 -
2021-03-27
C++中string的find()函数转载 2021-03-28 15:53:40 · 153 阅读 · 4 评论 -
2021-03-28
C++函数重载在C语言中,同一个程序中是不能定义多个名称相同的函数,否则编译会报重定义的错误信息,但是C++中则允许定义多个名称相同的函数,在C++中,这称之为函数重载,让我们来看看更官方一点的定义,函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。 此外需要注意的是,函数的返回值不构成重载条件。//类A和类B的两个同名show()函数不构成重载//因为两个函数的作用域不一样class A{ public: void show(in原创 2021-03-29 12:30:18 · 370 阅读 · 0 评论 -
2021-03-30
C++函数模板C++中的泛型编程有函数模板与类模板,这章我们先来了解函数模板函数模板是一种特殊的函数,可以使用不同的类型进行调用,对于功能相同的函数,不需要重复编写代码,并且函数模板与普通函数看起来很类似,区别就是类型可以被参数化。函数模板通过template与typename(或者class)两个关键字来定义,如下:上边就定义了一个变量交换的函数模板,在使用函数模板时有两种方式- 自动类型推到调用 Swap(a, b)- 具体类型显示调用 Swap(a, b)#include<ios原创 2021-03-30 19:41:45 · 170 阅读 · 0 评论