c++:删除==或任何其他特定类型的操作符
C++: Remove == or any other operator for specific types
如果我有一个名为classA的类,它具有classB和classC的类型转换重载,我如何禁用==操作符使classA被类型化为classC?
class classA{
operator classB();
operator classC();
//Remove this comparison possibility:
operator ==(classC firstObject,classC secondObject);
}
从这个问题开始:
使用多个类型转换时的模糊重载
在c++ 11中,可以删除方法
这与将方法设为私有类似。
然而,它表达了程序员的意图,并导致更多描述性编译器错误。
class classA{
operator classB();
operator classC();
//Remove this comparison possibility:
classC operator ==(classC secondObject) = delete;
};
定义操作符,使其为private
。
相关文章:
- 我可以将C 17 Capture lambda ConstexPR转换操作符的结果用作函数指针模板非类型参数吗?
- 清楚地说明 * 和 & 作为类型的一部分和作为取消引用/address_of操作符之间的区别
- sizeof操作符是否优先选择对象而不是类型
- 重载操作符+:表达式必须是整型或无作用域枚举类型
- 模板类型转换操作符=
- 我如何使用“函数调用操作符”来加载“右值”类型到我的对象
- 通过操作符[]在map中插入指针类型的值总是NULL
- C搜索字符串如果类型字符,int类型,操作符类型
- 为什么模板化的用户定义转换操作符能够确定其返回类型?
- c++模板赋值操作符重载——赋基本类型给对象
- 在可强制转换为另一个模板类型的类模板中重载赋值操作符
- c++操作符重载以指针类型作为参数
- c++模板操作符重载不同类型,自动返回类型
- 重载操作符类型错误
- 使用c++中的流操作符解析std::uint类型
- 基本数据类型的相等操作符Vs memcmp的性能
- 赋值操作符的返回类型是什么?
- 函数模板内的解除类型和范围解析操作符
- 使用new操作符在不知道对象类型的情况下将其复制到堆中
- 重载操作符返回类型