让自定义的类型可以和任意的类型之间转换
来源:互联网 发布:计算机二级c语言查询 编辑:程序博客网 时间:2024/04/29 16:21
定义如下的一个类
struct cls
{
template<typename T>
operator T()
{
return T();
}
template< typename T>
cls(const T&)
{
}
cls(){}
};
现在这个类可以和其它的任意的类型之间进行转换了。测试如下
void test()
{
cls o;
cls o2(3);
cls o3(7.9);
cout << (int)o << (char) o2 << (double)o3 << endl;
}
但是现在这种转换是没有意义的。要想使这种转换有意义,我们只需特化它的一些转换方法就行了。例如做如下的特化。
template<>
cls::cls(const int& a)
{
cout << "int -> cls" << endl;
}
template<>
cls::operator int()
{
cout << "cls->int" << endl;
return 8;
}
通过特化可以在不改变类定义的情况下。为定义的类添加恰当的转型操作,使这种转换成为一个有意义的转换。
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 让自定义的类型可以和任意的类型之间转换
- 类型之间的转换
- 类型之间的转换
- 类型之间的转换
- null可以被强制类型转换成任意类型的对象
- null可以被强制类型转换成任意类型的对象
- null可以被强制类型转换成任意类型的对象
- byte[]和String类型之间的转换
- CString和普通类型之间的转换
- Long 和 Date 类型之间的转换
- 关于软件需求开发和项目的范围管理
- 常见的回车焦点按钮问题
- Programming Ruby 中文版,第2版,3月26日全国发行!
- linux字符集设置
- 如何给动态库的名柄赋值
- 让自定义的类型可以和任意的类型之间转换
- RealPlayer播放器参数含义
- Asp.Net细节性问题精萃
- .prg文件中自定义了一些过程和函数'该怎么调用?
- 金山集训营
- K线为什么叫“K”线
- ARM系统的启动代码
- memcahced安装日志
- Java连接SQL Server 2000