mmo*_*jab 4 c++ casting operator-overloading
是否可以将类型定义之外的一种类型的转换操作符定义为非成员函数?我知道运营商之类的其他运营商也有可能 - 但是对于运营商而言是不可能的.例如,对于两个类A和B,我尝试在A和B范围之外定义转换运算符,如下所示:
operator A(const B& b)
{
A a(....);
return a;
}
Run Code Online (Sandbox Code Playgroud)
不,转换函数必须是成员函数.
从C++ 11开始,[class.conv.fct]/1:
甲成员函数的一类
X具有与所述形式[的名称没有参数operator转换型-ID ]指定从一个转换X到由指定的类型转换型-ID.这些功能称为转换功能.
没有其他转换函数,特别是没有非成员转换函数.
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |