C++ 类的隐式转换之基本数据类型
发布日期:2021-06-29 11:51:48
浏览次数:2
分类:技术文章
本文共 1145 字,大约阅读时间需要 3 分钟。
类的定义与基本数据类型相关,基本数据类型与类相互转换
接受一个参数的构造函数 为将该类型与该参数相同的值转化为类
TIME(int H);
#ifndef __TIME_H__#define __TIME_H__class TIME{ private: int nHours; int nMinutes; public: TIME(); TIME(int H, int M); TIME(int H); void SetTime(int H, int M); void ShowTime(void) const; TIME operator+(const TIME & t) const; TIME operator*( double b) const; friend TIME operator*(double b, const TIME & t);};#endif
注意这个函数 没有返回值 并没有返回一个引用 或者 对象本身
TIME::TIME(int H){ nHours = H; std::cout<<"这是1个参的构造函数"<
在main中调用
#include "Time.h"int main(int argc, char* argv[]){ TIME a; std::cout<<&a<
具体过程:
TIME a 定义了一个TIME对象 a,并调用了他的无参构造函数, 然后 程序使用了 TIME(int H); 来创建一个临时对象,并将10作为他的初始值,接下来采用逐成员赋值方式,将该临时对象的内容拷贝给a,这一过程称之为隐式转换TIME(int H, int M = 0);
提供一个默认值,也可以进行隐式转换
二者不能同时存在,否则编译器不知道调用哪个?报错如果在main中这么调用
int main(int argc, char* argv[]){ TIME a; std::cout<<&a<
那么它会调用两个参数的构造函数 来进行隐式转换吗?
不会,因为没有这个用法,隐式转换只接受一个参数同时存在多个隐式转换:
TIME::TIME(int H){ nHours = H; std::cout<<"这是1个参的构造函数 int"<
int main(int argc, char* argv[]){ TIME a; std::cout<<&a<当然也可以显式的指出: a = (int)10; a = (double)10;
explicit 关键字可以关闭这种自动特性
explicit TIME(int H);
我们只能使用显式的构造方法来使用 a = (TIME)10;转载地址:https://blog.csdn.net/ZZHinclude/article/details/114386083 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月05日 17时12分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
最新通知:AIDD与网络药理学资料大全
2019-04-29
Lammps分子动力学与第一性原理材料模拟及催化
2019-04-29
实习生小白的日常
2019-04-29
实习小白的日常(3)
2019-04-29
实习小白的日常(4)
2019-04-29
APP页面布局参考
2019-04-29
linux 的 Socket IO 模型
2019-04-29
APP调用服务器API设计
2019-04-29
Opencv+Zbar二维码识别(标准条形码/二维码识别)
2019-04-29
zbar优化
2019-04-29
微信扫码登录验证PHP代码(不用开放平台)
2019-04-29
CH554E USB单片机 10引脚小封装低成本USB方案
2019-04-29
windows MQTT客户端
2019-04-29
LINUX下挂载(mount)查看树莓派镜像文件
2019-04-29
基于CH568芯片加密SD卡方案
2019-04-29
1元钱的超低成本单芯片USB单片机方案
2019-04-29
单片机/树莓派扩展双串口(TTL和RS485)
2019-04-29
JAVA(android)提取WIFI客流探针MAC地址源码
2019-04-29
基于CH568芯片的SATA电子盘方案
2019-04-29