MOOC清华《面向对象程序设计》第4章:delete禁止自动类型转换实验
来源:互联网 发布:淘宝网热卖怎么加入 编辑:程序博客网 时间:2024/06/07 06:44
#include <iostream>using namespace std;class T{public:T(int){}//若无下条语句,则main函数中所有语句均可编译通过T(char) = delete;//可消除自动转换带来的隐患 };void Func(T t){}int main(){Func(1);//Func('x');//自动类型转换失败(char->int),编译不通过T ci(1);//T cc('X');//自动类型转换失败,编译不通过return 0; }
若没有定义T(char),则main函数中的所有语句依然可以编译通过,可能是因为C++编译器含有默认的自动类型转换;
而T(char) = delete 后,就彻底禁止了这种自动类型转换。
语言是承载信息的,语句也是承载信息的,语言和语句都是有着某种“魔力”的,就像“咒语”一样。计算机语言可以命令计算机做某事,或者不做某事,就像这条 = delete 语句,做到真正的“令行禁止”。自然语言也有类似的力量,只是计算机语言驱动的是软件、硬件,自然语言驱动的是“人件”。
= delete可以删除自定义类的成员函数,也可以删除非类成员的普通函数,禁止某些类型的自动转换。原理与上类似。
阅读全文
0 0
- MOOC清华《面向对象程序设计》第4章:delete禁止自动类型转换实验
- MOOC清华《面向对象程序设计》第4章:explicit禁止自动类型转换实验
- MOOC清华《面向对象程序设计》第4章:自动类型转换实验
- MOOC清华《面向对象程序设计》第4章:强制类型转换实验
- MOOC清华《面向对象程序设计》第2章:new/delete运算符实验
- MOOC清华《面向对象程序设计》第2章:类型推导操作符decltype实验
- MOOC清华《面向对象程序设计》第4章:继承基类构造函数实验
- MOOC清华《面向对象程序设计》第4章:函数重写实验
- MOOC清华《面向对象程序设计》第4章:向上映射实验
- MOOC清华《面向对象程序设计》第4章:虚函数实验
- MOOC清华《面向对象程序设计》第4章:虚析构函数实验
- MOOC清华《面向对象程序设计》第4章:函数模板实验
- MOOC清华《面向对象程序设计》第4章:函数模板的特化实验
- MOOC清华《面向对象程序设计》第4章:类模板的特化实验
- MOOC清华《面向对象程序设计》第3章:对象组合实验
- MOOC清华《面向对象程序设计》第2章:私有成员与公有成员不可同名实验
- MOOC清华《面向对象程序设计》第2章:auto变量实验
- MOOC清华《面向对象程序设计》第2章:左值引用实验
- 圆角边框和背景
- C++文件操作——MFC打开文件与保存文件
- Aizu
- Ubuntu14.04安装CPU版SSD(Single Shot MultiBox Detector)/Caffe版本(三)
- P1443 马的遍历
- MOOC清华《面向对象程序设计》第4章:delete禁止自动类型转换实验
- 初学python-3
- 在macOS上安装OpenCV开发环境
- corejava_异常-断言
- C语言中的位运算符
- 在Spring下集成ActiveMQ
- 485+MODBUS总结 第一章(完)
- 在OpenWrt上配置原生IPv6 NAT
- 浅析Android五大布局