| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 运算符重载 -> 正文阅读 |
|
[C++知识库]运算符重载 |
o掌握C++语言多态性的基本概念 C++语言多态性的基本概念? 在面向对象方法中,所谓多态性就是不同对象收到相同的消息时,产生不同的行为(即方法)。在C++程序设计中,多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,这样就可以用同一个函数名调用不同内容的函数。也就是说,可以用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。 ? 在C++中,多态性的实现和联编(也叫绑定)这一概念有关。一个源程序经过编译、连接,成为可执行文件的过程是把可执行代码联编(或称装配)在一起的过程。 ? 静态联编是指系统在编译时就决定如何实现某一动作。 ? 动态联编是指系统在运行时动态实现某个动作。 ? 静态联编支持的多态性称为编译时多态性,也称静态多态性。 ? 动态联编所支持的多态性称为运行时多态性,也称动态多态性。 运算符重载函数的声明和定义方法函数类型 operator 运算符名称(形参表){ } 以下代码为:类外定义运算符重载函数
其结果为: ?用友元运算符重载函数定义: (1)在类内定义友元运算符重载函数的格式如下: friend 函数类型 operator 运算符(形参表){ ? ? ? ? ? ? ? ?函数体 } (2)友元运算符重载函数也可以在类中声明友元函数的原型,在类外定义。 在类中 class X{ friend 函数类型 operator 运算符(形参表); }; 在类外 函数类型 operator 运算符(形参表){ ? ? ? ? 函数体 }
其结果如下: ?成员运算符重载函数 (1)对双目运算符而言,成员运算符重载的形参表中仅有一个参数,它作为运算符的右操作数。 (2)另一个操作数(左操作数)是隐含的,是该类的当前对象,他是通过this指针隐含传递给函数。
其结果为: 实验要点:? ? ? ? 对运算符重载制定了一下一些规则。 (1)C++中绝大部分的运算符允许重载,不能重载的运算符只有以下几个: .? ? ? ? 成员访问运算符? ? ? ? .*? ? ? ? 成员指针访问运算符? ? ? ? ::? ? ? ? 作用域运算符 ?:? ? ? ? 条件运算符? ? ? ? Sizeof? ? ? ? 长度运算符 (2)C++语言中只能对已有的C++运算符进行重载,不允许用户自己定义新的运算符。 (3)运算符重载函数的参数至少应有一个是类对象(或类对象的引用)。 (4)重载不能改变运算符原有的结合特性。 (5)重载不能改变运算符的操作对象(即操作数)的个数。 (6)重载不能改变运算符原有的优先级。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:48:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |