IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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++ Primer Plus(第六版)】第十一章-使用类 -> 正文阅读

[C++知识库]【C++ Primer Plus(第六版)】第十一章-使用类

使用类

11.1 运算符重载

引出:运算符重载使得语言更加灵活,生活中也是这样,比如英语中不同的物体使用不同的动词,这样英语就会变得非常笨拙。
C++中基本数据类型可以做加法,但是如果对+运算符重载后,就可以实现了两个对象加法运算。

11.2 计算时间:一个运算符重载的例子

书上给出了重载时间类的例子,见Day30中的例子。
重载运算符限制:

  • 不能重载以下运算符:
    sizeof运算符
    . 成员运算符
    .*成员指针运算符
    ::作用域运算符
    ?:条件运算符
    强制类型转换运算符:const_cast ,dynamic_cast ,reinterpret_cast, static_cast 运算符

11.3 友元

C++控制对类的私有成员的访问,但是通过友元可以赋予友元函数类的私有访问权限。
见Day30,类的友元函数实现。声明使用friend,但是实现时不能用friend。

11.4 重载运算符:作为成员函数还是非成员函数

Time类的加法运算符:

Time operator+(const Time & t) const;

可以转换为如下的非成员函数:

friend Time operator+(const Time & t) const;

11.5 重载:一个Vector矢量例子

一个Vector类的实现,见Day029,这是一个综合的例子,看完这个例子对以前学过的知识是一个很好的提升。

11.6 类的自动类型和强制类型转换

long count =  8 // 将int 类型的8 隐士 转换为了long 

那么是否可以将类转换为基本的数据类型,

例子见Day028

	explicit operator int() const;  // 加上expliit关键字,避免了隐士类型转换,
	Stonewt::operator int() const
	{
		return int(pounds + 0.5);
	}
Stone st;
int a = (int ) st;  // 加上explicit就必须通过这样显示类型转换。

类和基本数据类型进行加法时的选择:

C++中的类的构造函数可以将某种类型转换为类类型,但是相反的转换要用C++运算符函数转换。
int类型和stone类的类型相加,两种方法:

  • 第一种:通过构造函数将基本数据类型转换为类的类型,然后利用友元函数实现的运算符重载:
operator+(const Stone & , const Stone &)
  • 第二种方法:将加法运算符重载为一个显示使用double类型的参数的函数:
friend Stone operator+(double x, Stone & s);
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:40:56  更:2022-05-10 11:42:09 
 
开发: 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/23 19:24:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码