C++
小鼠2021
heloo
展开
-
模板类总结
前言C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。模板机制模板把函数或类要处理的数据类型参数化,表现为参数的多态性,称为类属。模板用于表达逻辑结构相同,但具体数据元素类型不同的数据对象的通用行为原创 2021-01-15 09:13:43 · 69 阅读 · 0 评论 -
C++多态的使用
多态使用规则根据实际的对象类型来判断重写函数的调用如果父类指针指向的是父类对象则调用父类中定义的函数如果父类指针指向的是子类对象则调用子类中定义的重写函数多态实例 #include <iostream>using namespace std ;class calArea{ public : virtual double areaCal(){ // this is polomorphic function // depends on child原创 2021-01-13 19:16:03 · 110 阅读 · 0 评论 -
C语言命名规范
概述关于C语言的命名方式有很多,也没有一种明确的规定,所以我就总结自己的C语言命名规范。命名变量: 骆驼命名法 , 例如:numData ;函数: 帕斯卡命名法,例如:DisplayData;宏定义:较短的变量全部大写:MAX,MIN,NUM ; 否则,下划线命名法,例如:list_data类名,结构体,枚举,联合体:全部大写,例如:PERSON,STU常见缩写全称缩写释义valueval值additionadd加subtractionsub原创 2020-12-09 16:25:36 · 3524 阅读 · 0 评论 -
c++的多重继承
多重继承定义声明形式:class 派生类名标识符:[继承方式] 基类名标识符1,...,访问控制修饰符 基类名标识符n{ [访问控制修饰符:] [成员声明列表]}二义性多个父类中都有相同的成员或者成员函数,则需要指明具体的父类,不然会产生二义性,编译器报错#include <iostream>using namespace std;class A{public: void fun(){std::cout << "this is A class"原创 2020-11-23 22:53:43 · 82 阅读 · 0 评论 -
运算符的重载
运算符实际上是一个函数,所以运算符的重载实际上是函数的重载。重载运算符的形式与规则重载运算符的声明形式如下:operator 类型名();operator是需要重载的运算符,整个语句没有返回值类型,因为类型名就代表了它的返回值类型。重载运算符将对象转换成类型名规定的类型,转换时的形式就像强制转换一样。重载运算符不能是新创建的运算符;1. 算数运算符:+,-,,/,%,++,–2. 位操作运算符:&,|,~,^,>>,<<3. 逻辑运算符:!,&原创 2020-11-21 23:01:17 · 327 阅读 · 0 评论 -
继承
类的继承类继承的形式如下:class 派生类名标识符:[继承方式]基类名标识符{ [访问控制修饰符:] [成员声明列表]}继承方式继承方式\基类成员public成员protected成员private 成员public继承public成员protected成员不可见protected继承protected成员protected成员不可见private继承private成员private成员不可见构造函数和析构函数的访问顺序原创 2020-11-21 21:58:28 · 849 阅读 · 0 评论 -
友元
友元普通函数需要直接访问一个类的保护或私有数据成员的原因主要是为了提高效率。使用friend关键字可以让特定的函数或者别的类的所有成员函数对私有数据成员进行读写。使用友元,既可以半尺数据的私有性,又能使特定的类或函数直接访问私有数据。友元类和友元方法直接贴代码// rectangle.h 文件#pragma onceclass rectangle{public: rectangle(); rectangle(int, int, int, int); int getHight原创 2020-11-19 09:39:15 · 79 阅读 · 0 评论 -
c++类成员
类成员种类public : 对外可见,对内可见private : 对外不可见,对内可见protected : 对外不可见,对内可见,对派生内可见类定义时候没有加关键字则默认为private静态类成员静态类成员是在类成员定义前使用static关键字标识,静态类成员允许通过类名直接访问。class PERSON{public: static short Age ; char* Name;};// 在定义了静态类成员后需要在类体外部对静态数据成员进行初始化short PERSO原创 2020-11-17 10:40:27 · 555 阅读 · 0 评论 -
关于类的析构函数总结
析构函数析构函数的功能是用来释放一个对象,在对象删除前,用它做一些内存释放等收尾工作。一个类只能定义一个析构函数析构函数不能重载析构函数和构造函数一样不能加return , 也不用加关键字void语法析构函数名标识符就是在类名标识符符号前面加 ~ 符号// PERSON.h 头文件#pragma onceclass PERSON{public: short Age; char* Name; PERSON(short Age , char *Name); PERSON(P原创 2020-11-17 09:07:32 · 828 阅读 · 0 评论 -
关于构造函数的总结
构造函数当类的实例进入作用域时,即对象被建立,则就会调用构造函数。构造函数的作用是:建立一个对象时,构造函数可以对这个对象进行初始化。构造函数特点构造函数名和类名相同。构造函数没有返回值。构造函数可以在类内和类外定义。构造函数可以重载。构造函数在对象被创建时自动调用。构造函数语法成员初始化列表,格式为:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表)…{类的初始化}// PERSON.h文件#pragma onceclass PERSON{public:原创 2020-11-16 17:28:20 · 363 阅读 · 0 评论 -
c++类基础知识
类的概述类是一种新的数据类型,与结构体相似,是由不同数据类型组成的集合体,但是类增加了操作数据的行为,该行为就是函数。类的声明与定义声明格式:/* 1. class 是定义类的关键字 2. 花括号内被称为内体或类空间 3. 类名是一个新的数据类型,可以通过内名声明对象 4. 类的成员有函数和数据两种 5. 关键字public,private,protected均是修饰符*/class 类名标识符{public: 数据成员的声明; 成员函数的声明;private: 数据成员的原创 2020-11-16 16:10:55 · 193 阅读 · 0 评论 -
共用体(联合体)类型
共用体数据类型是指将不同的数据项组织为一个整体,它和结构体有些相似之处,但是共用体在内存中占用首地址相同的一段存储单元。共用体的定义与声明1. 共用体的一般定义形式union typename{ type1 var1 ; type2 var2; ... typen varn; };声明共用体数据类型变量有以下几种方式:// 先定义共用体,再声明共用体变量union myTest{ int i; char ch ; double d;};myTest my_u ; /原创 2020-11-15 21:45:13 · 1421 阅读 · 0 评论 -
C++ 中内存分配和内存安全问题
内存分配堆与栈在程序中定义一个变量,如果没有申请动态分配方式,它的值将放到栈中。栈中的变量所属的内存大小无法被改变,它们内存的分配和释放与变量定义的位置和存储类型相关。在程序中申请一个动态分配内存方式定义一个变量,则会把该变量的值放入堆中,根据需要,该变量内存的大小可以改变,内存的申请和销毁都是可控制。关键字:new , deletevar = new typedelete var#include <iostream>using namespace std;int m原创 2020-11-15 09:39:38 · 468 阅读 · 0 评论