笔记-2017.9.12
来源:互联网 发布:列车网络控制系统组成 编辑:程序博客网 时间:2024/06/06 00:57
1.类的自动类型转换,强制类型转化,显隐性转换,C++中允许从某类型到某个类类型的转换(就像内置类型一样),具体来说,通过只含一个参数的构造函数,其可以作为转换类型构造函数来实现,例如
class foo:
{
public:
foo(int);
..
..
..
};
其中的构造函数foo就可以用来转换类型:foo foo1=9; 这句话是成立的, 程序将使用9来初始化一个临时的对象,然后再将其中的值赋给foo1,这是隐式的类型转换。
2.显式强制类型转换与内置一样:foo foo1=(int) 9;
3.通过使用explicit来修饰转换类型构造函数可以关闭其隐式类型转换的性质,即foo foo1=9将不再可用。
4.C++也支持从类类型到其他类型的转换,具体为使用转换函数:operator typeName();注意:转换函数必须是类方法、转换函数不能指定返回类型、转换函数不能有参数,举个例子
foo::operator double() const
{
return this->xxx;
}
5.尽管C++支持类的类型转换,但这不意味着任何情况下程序都会进行转换,例如:
double foo1;
foo1.xxx();这是没有意义的,因为只有类对象才能调用成员函数,程序不会将foo1解释为foo类对象的。
6.不要写太多的转换函数,会导致二义性。例如:
double foo1;foo foo2;
total=foo1+foo2;//+已被重载
如果同时提供了转换构造函数(double->foo)和构造函数(foo->double)这会造成歧义:是将foo1转为foo,然后执行重载后的+,还是将foo2转为double,执行一般的double加法?
- 笔记-2017.9.12
- 笔记12
- 笔记12
- 笔记12
- 2017.9.25学习笔记
- AD学习笔记12
- Java学习笔记12
- stl 学习笔记 12
- 08-12月笔记
- Spring学习笔记12
- Groovy笔记(12)_Groovlet
- 12月笔记
- 12 PowerDesigner学习笔记
- 每日学习笔记(12)
- 《数据结构》学习笔记12
- Perl 学习笔记 --- 12
- 2012.4.12笔记
- 练习笔记12
- Kaldi中特征文件格式的转换
- Java基础----Java内部类基础
- CCF 201703-2 学生排队
- 用TextPaint来绘制文字
- VS2013 C++有多个重载函数“sqrt”实例与参数列表匹配
- 笔记-2017.9.12
- windows下启动多个mysql服务
- yii简单分页
- Java学习第四天
- 【python 读取mysql数据】Python如何读取MySQL数据库表数据
- java.util和java.awt的区别
- Python调用windows下DLL详解
- HDU 3555 Bomb 数位dp
- C语言外挂实现原理