文章目录 一、一元运算符重载 1、使用成员函数实现前置自增运算符重载 2、使用成员函数实现前置自减运算符重载 二、完整代码示例 一、一元运算符重载 1、使用成员函数实现前置自增运算符重载 使用全局函数实现前置自增运算符重载: 首先,写出函数名,函数名规则为"operate"后面跟上要重载的运算符,函数名是operate; operate 然后,根据操作数写出函数参数,参数一般都是对象的引用; 成员函数:参数是个对象的常量引用,如:operate+(constStudent&s1) 全局函数:参数是个对象的引用,如:operate+(S...

文章目录 一、一元运算符重载 1、一元运算符列举 2、为下面的类实现运算符重载操作 3、使用全局函数实现前置自增运算符重载 4、使用全局函数实现前置自减运算符重载 二、完整代码示例 一、一元运算符重载 1、一元运算符列举 一元运算符:又称为单目运算符 取反运算符:- 解引用运算符: 取地址运算符:& 自增运算符:,该运算符分为前置和后置两种类型; 自减运算符:–,该运算符分为前置和后置两种类型; 2、为下面的类实现运算符重载操作 本博客中,为下面的Student类实现一元运算符重载操作; classStudent { public: ...

文章目录 一、运算符重载简介 1、运算符重载引入 2、运算符重载简介 二、运算符重载推衍 1、普通类型数据相加 2、对象类型数据相加 3、对象类型数据相加普通函数实现 4、对象类型数据相加函数名修改为operator+ 使用operator+调用运算符重载函数 使用+运算符调用运算符重载函数 三、完整代码示例 一、运算符重载简介 1、运算符重载引入 个int类型的基础类型变量,相加,就是两个数值相加; intx=10,y=20; intz=x+y; 如果是 如果没有进行运算符重载, //自定义类型相加 Students1(10,12...

文章目录 一、静态成员函数简介 1、静态成员函数概念 2、静态成员函数声明 3、静态成员函数访问 4、静态成员函数只能访问静态成员 二、代码示例静态成员函数 一、静态成员函数简介 1、静态成员函数概念 静态成员函数归属:在C类中,静态成员函数是一种特殊的函数,该函数属于类,而不是属于类实例对象; 静态成员函数调用不依赖于对象:即使没有创建类的实例对象,也可以通过类名::调用类中定义的静态成员函数; 静态成员函数作用:静态成员函数通常用于执行与类本身相关的操作,执行该函数不涉及到类实例对象中的信息,也不能在静态成员函数中访问普通的成员变量和成员函数; ...

文章目录 一、C对象的动态创建和释放 二、new运算符为基础数据类型/基础数据数组类型分配堆内存 1、语法说明 2、语法简单示例 3、代码示例基础类型内存分配 4、代码示例基础数组类型内存分配 三、完整代码示例new运算符为基础数据类型/基础数据数组类型分配堆内存 一、C对象的动态创建和释放 动态内存管理在C语言中,就是通过new和delete运算符进行对象的创建与释放; 通过new运算符创建对象 通过delete运算符释放对象 在C语言中,为了兼容C语言,仍然可以使用malloc和free函数动态管理内存, 但是更建议开发者在C程序开发时,使用new和d...

文章目录 一、报错信息 二、问题分析 三、解决方案 1、低版本Gradle配置 2、高版本Gradle配置 一、报错信息 在AndroidStudio中,编译应用,报如下错误: C:/Users/octop/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.0/7857e365f925cfa060f941c1357cda1f8790502c/kotlin-stdlib-common-1.6.0.jar!/META-INF/kotlin-stdlib-co...

文章目录 一、继承中的对象模型分析 1、继承代码示例 2、基类与派生类内存模型 3、问题引入派生类对象构造函数和析构函数调用 4、完整代码示例派生类对象内存模型 二、继承中的构造函数和析构函数 1、子类构造函数与析构函数调用顺序 2、子类构造函数参数列表 3、代码示例继承中的构造函数和析构函数 一、继承中的对象模型分析 1、继承代码示例 下面有3个类,分别是A类,B类,C类; A类是基类; B类公有继承A类,并定义了新的成员变量y; C类公有继承B类,并定义了新的成员变量z; classA{ public: intx; }; classB:...

文章目录 一、多态实现 1、面向对象中"多态"的真正需求 2、面向对象"多态"实现virtual修饰函数 二、代码示例多态实现 1、代码示例 2、执行结果 一、多态实现 1、面向对象中"多态"的真正需求 在上一篇博客【C】多态①(类型兼容性原则与函数重写|“多态“引入|函数重写)中,进行了测试,在测试代码中,实际的对象类型是Parent父类类型的, 不管是将Parent指针指向父类还是子类, 不管是将Parent&引用指向父类还是子类, 调用的都是父类的函数,这并不是我们想要的; 上述测试中,根据实际的对象类型确定重写函数中要调用父类还...

文章目录 一、多继承 1、多继承基本语法 2、多继承子类构造初始化 3、多继承中访问父类成员 二、多继承案例 1、代码示例简单多继承案例 2、代码示例多继承构造函数案例 一、多继承 1、多继承基本语法 多继承概念:一个子类(派生类)可以继承多个父类(派生类); 一个类可以继承多个类的属性和方法; 使用多继承,可以创建更复杂的类,该派生类可以组合多个基类的功能; 只有C语言有多继承概念,别的语言没有该概念; Java语言只能继承一个父类,可以实现多个接口; 多继承语法: class子类名称:访问控制关键字父类名称1,访问控制关键字父类名称2...

文章目录 一、public公有继承示例分析 1、public公有继承 2、代码示例public公有继承 二、protected保护继承示例分析 1、protected保护继承 2、代码示例protected保护继承 三、private私有继承示例分析 1、private私有继承 2、代码示例private私有继承 成员的访问属性需要看根据下面的逻辑进行判定: 调用位置:看是在哪调用的,在类内部,派生类(子类),还是在类外部; 子类继承方式: 公有继承:public 保护继承:protected 私有继承:private 父类中的访问级别: 公有成...

文章目录 一、public公有继承示例分析 1、类型兼容性原则 2、类型兼容性原则应用场景 二、类型兼容性原则示例分析 1、父类指针指向子类对象 2、使用子类对象为父类对象进行初始化 3、完整代码示例 一、public公有继承示例分析 1、类型兼容性原则 类型兼容性原则:C的"类型兼容性原则“又称为”赋值兼容性原则"; 子类代替父类:需要基类(父类)对象的地方,都可以使用"公有继承"的派生类(子类)对象替代,该派生类(子类)得到了除构造函数和析构函数之外的所有成员变量和成员方法; 功能完整性:"公有继承"的派生类(子类)本质上具有基类(父类)的完整功...

文章目录 一、继承相关概念 1、继承不包括构造与析构函数 2、继承改变成员访问权限 二、访问控制权限回顾 1、访问权限 2、代码示例访问权限 三、继承对访问控制权限的影响 1、访问权限判定 2、公有继承 3、保护继承 4、私有继承 一、继承相关概念 1、继承不包括构造与析构函数 子类继承父类的所有成员,包括成员变量和成员方法; 子类不会继承父类的构造函数和析构函数; 2、继承改变成员访问权限 父类的成员变量和成员方法的访问属性,在子类中是可以调整的; 如:private,protected,public访问属性,在子类中可以发生改变;...

文章目录 一、后置运算符重载 1、前置运算符重载与后置运算符重载的区别 2、后置运算符重载添加int占位参数 上 【C】运算符重载④(一元运算符重载|使用全局函数实现前置自增运算符重载|使用全局函数实现前置自减运算符重载) 【C】运算符重载⑤(一元运算符重载|使用成员函数实现前置自增运算符重载|使用成员函数实现前置自减运算符重载) 讲解了前置运算符的重载,前置运算符就是Object或--Object,一元运算符在对象的前面; 本篇博客开始讲解后置运算符的重载; 一、后置运算符重载 1、前置运算符重载与后置运算符重载的区别 后置运算符是Object或Obje...

文章目录 一、左移运算符重载 1、友元函数/成员函数实现运算符重载 2、类对象使用左移运算符 3、左移运算符<<重载 二、完整代码示例 一、左移运算符重载 1、友元函数/成员函数实现运算符重载 运算符重载的正规写法一般都是使用成员函数的形式实现的; 加法+,减法,自增,自减,一般都使用成员函数实现运算符重载; 上述运算符重载既可以使用成员函数进行重载,又可以使用友元函数进行重载; 只能使用成员函数重载的运算符:=,[],(),->等操作符只能使用成员函数进行重载; 只能使用友元函数重载的运算符:无法修改左操作数的情况下,只能使用全...

文章目录 一、继承的一些重要特性 1、子类拥有父类的所有成员 2、子类可以拥有父类没有的成员 3、多态性 二、代码示例 一、继承的一些重要特性 1、子类拥有父类的所有成员 子类继承父类,则子类拥有父类的所有成员变量和成员函数; 这里要注意:子类拥有父类的私有成员,但是子类不能直接访问父类的私有成员,必须通过父类的公有或受保护的成员函数访问父类的私有成员; 子类不能访问父类的私有成员,并不代表子类中没有父类的私有成员; 下面的Parent父类中,定义了私有成员函数privateFun; 如果Child子类继承上述Parent父类,子类中无法直接调用p...

文章目录 一、重载大于号/小于号运算符使用成员函数重载 1、重载大于>运算符 2、重载小于<运算符 二、重载右移>>运算符使用全局函数重载 三、完整代码示例 1、String.h类头文件 2、String.cpp类实现 3、Test.cpp测试类 一、重载大于号/小于号运算符使用成员函数重载 1、重载大于>运算符 使用成员函数实现等于判断运算符重载: 首先,写出函数名,函数名规则为"operate"后面跟上要重载的运算符, 要对Stringa,b对象对比操作,使用大于>运算符,使用时用法为a>b; 函数名...

文章目录 一、重载双等号/不等号运算符 1、等于判断运算符重载 2、重载不等号!=运算符 三、完整代码示例 1、String.h类头文件 2、String.cpp类实现 3、Test.cpp测试类 一、重载双等号/不等号运算符 1、等于判断运算符重载 使用成员函数实现等于判断运算符重载: 首先,写出函数名,函数名规则为"operate"后面跟上要重载的运算符, 要对Stringa,b对象对比操作,使用运算符,使用时用法为ab; 函数名是operate; operate 然后,根据操作数写出函数参数,参数一般都是对象的引用; 要对Str...

文章目录 一、重载左移<<运算符 1、左移<<运算符作用 2、重载左移<<运算符 二、自定义类使用技巧 1、直接访问类的私有指针成员 2、为指针分配指定大小内存并初始化0 三、完整代码示例 1、String.h类头文件 2、String.cpp类实现 3、Test.cpp测试类 一、重载左移<<运算符 1、左移<<运算符作用 左移运算符重载,可参考【C】运算符重载⑧(左移运算符重载|友元函数/成员函数实现运算符重载|类对象使用左移运算符)博客; 左移运算符用于cout<<s...

文章目录 一、VisualStudio中创建String类 二、构造函数与析构函数 1、成员变量 2、无参构造函数 3、有参构造函数 4、拷贝构造函数 6、析构函数 三、完整代码示例 1、String.h类头文件 2、String.cpp类实现 3、Test.cpp测试类 4、执行结果 一、VisualStudio中创建String类 右键点击"解决方案资源管理器"中的解决方案名称,在弹出菜单中,选择"添加/类"选项; 输入String类名,然后点击右下角的"确定"按钮; 生成的String.h头文件内容为: pragmaonce classStri...

文章目录 一、括号()运算符重载 1、括号()运算符介绍 2、括号()运算符重载 二、完整代码示例 1、Test.cpp测试类 4、执行结果 一、括号()运算符重载 1、括号()运算符介绍 使用类定义对象, Students; 对对象s使用括号运算符,并在括号中输入两个值, s(10,20) 上述写法,与函数调用很像,只是s不是函数名,而是一个对象的名称; 该括号()操作符被重载了; 注意分区下面 s(10,20)括号运算符重载; Students(10,20)构造函数调用; s.add(1,2)正常的函数调用,调用s对象中的add函数;...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~