本文章是作者根据史蒂芬·普拉达所著的《C++ Primer Plus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。
上一节我们可以利用构造函数,将内置类型(double)转换为自定义类型(Stonewt),那么问题来了,可以将自定义类型转换成内置类型吗?
比如如下的语句:
Stonewt wolfe(285.7);
double host = wolfe;
构造函数只用于从某种类型到类类型的转换。要进行相反的转换,必须使用特殊的C++运算符函数——转换函数。
转换函数的格式如下:
operator typeName();
需注意以下几点:
- 转换函数必须是类方法
- 转换函数不能指定返回类型
- 转换函数不能有参数
例如,转换为double类型的函数的原型如下所示:
operator double();
typeName(此处为double)指出了要转换成的类型,因此不需要指定返回类型。转换函数是类方法意味着:它需要类对象来调用,从而告知函数要转换的值。因此,函数不需要参数。
接下来,我们完善下Stonewt类,
类声明如下:
//stonewt1.hpp
#ifndef _STONEWT1_HPP_
#define _STONEW