自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 12-1运算符重载

运算符重载在C++中,同一个类型或运算符在不同的类中有不同的含义或实施不同的运算,这也是面向对象的多态性运算符重载是使一个运算符作用于不同类型的数据时具有不同的行为实质上,是将运算对象转化为运算函数的实参,并根据实参的类型来确定重载的运算函数运算符重载和类型重载是多态的另外两种表现形式实现定义一个重载运算符的函数,在需要执行被重载的运算符时,系统自动调用该函数,以实现相应的运算。即,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。在定义了重载运算符的函数之后,可

2021-11-21 15:47:54 229

原创 11 虚函数

虚函数概念虚函数是动态联编的基础,允许函数调用与函数体之间的联系在运行时才建立也就是在运行时才决定如何动作,即所谓的动态联编虚函数是成员函数,而且是非静态成员函数声明:virtual <类型说明符><函数名>(<参数表>)若某类中一个成员函数被说明为虚函数,则该成员函数在派生类中可能有不同的实现。当使用这个成员函数操作指针或引用所标识对象时,对该成员函数调用采取动态联编方式,即在运行时进行关联或束定动态联编只能通过指针或引用标识对象来

2021-11-21 15:04:01 792

原创 10 多态

多态多态性:不同对象受到相同的消息时,产生不同的动作两种描述:具有不同功能的函数可以用同一个函数名指向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为多态的实现函数重载运算符重载虚函数C++中的多态性可以分为四类通用多态参数多态:与类属函数和类属类相关联(函数模板和类模板就是这种多态)包含多态:研究类族中定义于不同类中的同名成员函数的多态行为(主要是通过虚函数来实现的)专用多态重载多态:普通函数及类的成员函数的重载

2021-11-21 15:02:53 336

原创 09 嵌套类

嵌套类在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类定义嵌套类的目的在于隐藏类名减少全局的标识符从而限制用户能否使用该类建立对象这样可以提高类的抽象能力,并且强调了两个类(外围类和嵌套类)之间的主从关系 class A { public: class B { public: ... private: ... }; void f(); privat

2021-11-21 15:01:46 78

原创 08 多文件

多文件一个源程序可以划分为多个源文件类声明文件(.h文件)类实现文件(.cpp文件)类的使用文件(main()所在的.cpp文件)利用工程来组合各个文件ATTENTIONvscode中多文件编译运行vscode的c++配置及多文件项目编译(主要是后者) - 知乎 (zhihu.com)(1条消息) vscode 中C++运行编译运行多文件问题总结_audioFrame的博客-CSDN博客挑把趁手的兵器——VSCode配置C/C++学习环境(小白向) -

2021-11-21 15:00:52 365

原创 06 const

const1. 共用数据的保护(const的使用)一般形式类型名 const 对象名[(构造实参表列)]const 类型名 对象名[(构造实参表列)]attention:常对象必须要有初值(因为之后不能该值了)限定作用定义为const的对象的所有数据成员的值都不能修改凡出现调用非const的成员函数,将出现编译错误(构造函数除外) Time const t1(12,34,46); //t1是常对象 t1.set_Time(); //编译错误PE,非con

2021-11-21 14:59:49 167

原创 05-01 对象成员

对象成员如果一个类的对象是另一个类的数据成员,则称这样的数据成员为对象成员class A{ //...};class B{ A a; //类A的对象a为类B的对象成员 public: //...};对象成员的初始化Example 1. 形参表定义#include <iostream>using namespace std;class A{private: int x; float y;public:

2021-11-21 14:58:42 174

原创 05 友元

友元概念友元可以访问与其有好友关系的类中的成员。友元提供不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。实际是对封装的破坏友元既可以是不属于任何类的一般函数,也可以是另一个类的成员函数,还可以是整个的类。包括:友元函数不是当前类的成员函数,而是独立于当前类的外部函数可以访问该类的所有对象的成员,包括私有、保护、公有成员声明:位置:类体中格式:函数名前加friend定义:类体内:函数名前加friendExample 1. 在

2021-11-18 20:38:22 304

原创 04-05 静态成员

静态成员概念引入:实现一个类的不同对象该类的所有对象共享静态成员目的:实现数据共享,可以不必使用全局变量静态数据成员关键词:static该类的所有对象维护该对象的同一个拷贝必须在类外定义和初始化,用::来指明所属的类私有静态数据成员不能被类外部函数访问,也不能用对象访问静态成员函数类外代码,使用类名和作用域操作符调用公有静态成员函数静态成员函数只能引用属于该类的静态数据成员或静态成员函数访问非静态数据成员,必须通过参数传递方式得到对象名,用过对象名访问静态数据成员

2021-11-05 09:50:28 171

原创 04-04 向函数传递对象

向函数传递对象1、向函数传递对象对象作为参数传递给函数向函数传递对象时,通过传值调用传递函数中对对象的任何修改,均不影响调用该函数的对象本身#include <iostream>using namespace std;class A{ private: int x; public: A(int n) { x = n; } void set(int n) { x = n; } int get() {

2021-11-04 20:37:58 410

原创 04-03 对象指针

对象指针【Example 1】指向对象的指针#include <iostream>using namespace std;class exe{ private: int x; public: void set_x(int x) { this->x = x; } void show() { cout << x << endl; }};int main(){ exe ob, *p;

2021-11-04 18:18:26 70

原创 04-02 对象数组

对象数组【Example 1】#include <iostream>using namespace std;class exam{ private: int x; public: void set_x(int n) { x = n; } int get_x() { return x; }};int main(){ exam ob[4]; int i; for (i = 0; i <

2021-11-04 16:12:09 120

原创 04-01 this指针

自引用指针thisthis指针:成员函数隐藏定义的常量指针类型:类的类型指向:当前对象通过它可以访问当前对象的所有成员在通常情况下,this指针在系统中是隐含地存在的。也可以将其显式地表示出来。const指针,不能在程序中修改或赋值作用域在对象内部,可通过this访问private,public,protected属性成员对象被创建后才给this赋值,由编译器自动完成调用:调用成员函数时,它被初始化为被调函数所在类的对象的地址。也就是自动地将对象的指针传给它。不同的对象调用同一个

2021-11-03 22:05:08 76

原创 03-02拷贝构造函数

拷贝构造函数一种特殊的构造函数:形参是本类对象的引用作用:用一个已存在的对象,初始化另一个同类的对象也是构造函数的函数重载调用:通过=复制对象时,系统自动调用特点:函数名,同类名没有返回值类型只有一个参数,是同类对象的引用class& obj每个类必须有一个拷贝构造函数若没有显式定义,系统会自动生成缺省的拷贝构造函数缺省的拷贝构造函数,将对象的各个数据成员拷贝给被拷贝对象的各个数据成员;两个对象的内存映像是一模一样的缺省拷贝构造函数按成员逐一复制的过程,自动完

2021-10-27 14:35:03 67

原创 000-说明

说明本栏中文章为博主学习C++中的笔记和总结可能有错误或不足,欢迎指出

2021-10-27 13:04:48 59

原创 03-01构造函数

对象的初始化不能在声明类时初始化数据成员对象的初始化方法调用对外接口public成员函数实现构造函数实现构造函数构造函数是一种特殊的成员函数 它主要用于为对象 分配空间 进行初始化特点:函数名与类名相同没有返回类型(有隐含的返回值,系统内部使用)不能被显式调用函数体可以写在类体内或类体外可以重载不能继承一般声明为公有函数两种方式:构造函数体内赋值语句class Date{public: Date(int y, int m, int d) { yea

2021-10-26 21:49:36 81

原创 02-02C++结构

C++程序一般结构由类的声明、定义、使用组成类的使用一般在主函数及其子函数中#include <iostream> // 预处理命令using namespace std;/* 类的声明 */class Student // 声明一个类,类名为Student{private: // 以下为类中的私有部分 int num; // 私有变量num int score; // 私有变量scorepublic: // 以下为类中的公用部分

2021-10-26 20:35:59 67

原创 02-01对象&类

相关概念1、对象&类对象,存在的相对独立的个体具有:静态属性、动态行为类,是对具有相同属性和行为的对象的抽象2、封装封装体:把对象的属性和行为组成一个独立的单位具有独立性、隐藏性封装体与外部通过有限的接口联系C++中,类支持数据的封装,对象是数据封装的实现类中成员有不同的访问权限3、继承表现特殊类和一般类的关系,提高了重用性,简化了对于客观事物的描述支持单重继承和多重继承4、多态性多态性,一种行为对应着多种不同的实现体现在:支持函数重载、运算符重载支持动态联编5

2021-10-26 20:08:44 77

原创 01-3.9带有缺省参数值的函数

在C++中,函数的参数可以有缺省值。当调用有缺省参数的函数时,如果相应的参数没有给出实参,则自动用相应的缺省参数值作为其实参。函数的缺省参数,是在函数原型中给定的。如,int init(int x=5, int y=10);则如下调用是允许的:init(100,80);init(25);init(); 说明:(1)在函数原型中,所有取缺省值的参数必须出现在不取缺省值的参数的右边。如:int fun(int I,int j=5,int k); //错误int fun(int I,

2021-10-22 17:14:03 926

原创 01-3.8内联函数

调用函数时系统要付出一定的开销,用于信息入栈出栈和参数传递等。特别是对于那些函数体较小但调用又较频繁的函数,计算机的开销相对就比较可观。在C语言中,用宏替换,可解决这个问题。如下代码,用宏替换时,可写为:#define add(x,y) x+yadd(int x,int y){ return x+y;}宏替换实质上是文字替换。C++引进了内联函数(inline function)的概念。内联函数与宏不同之处在于,内联函数在编译的时候进行文字替换。在进行程序的编译时,编译器将内联函数的

2021-10-22 16:54:55 162

原创 01-3.7void型指针

void 通常表示无值。将void作为指针的类型时,它表示不确定的类型。这种 void 型指针是一种通用型指针,也就是说任何类型的指针值都可以赋给void类型的指针变量。void pa; //错误,不能声明void 类型的指针变量void* pc; //正确,可以声明void类型的指针int i=456;char c=‘a’;pc=&i;pc=&c;void型指针可以接受任何类型的指针的赋值,但对已获值的void型指针,对它在进行处理(如输出或传递

2021-10-22 16:36:57 58

原创 01-3.6const修饰符和指针

const与指针指向常量的指针指向常量的普通指针变量const char *name="chen"; //name是指向一个常量的指针变量name[2]='a'; //错name="zhang"; //对常指针指针变量是常量,指向固定的存储单元char *const name="chen"; //name是一个常量,它指向固定的存储单元。地址不能变name[2]='a'; //对name="zhang"; //错指向常量的常指针指针是常量,它指向固定的存储单元所指向的内容也是常

2021-10-22 16:14:36 42

原创 01C++基础

2021-10-22 15:55:26 43

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除