c++ - 强制转换运算符 - const 与非 const

标签 c++ casting operator-overloading constants

我有这个代码示例:

class Number 
{ 
  int i;
  public:
    Number(int i1): i(i1) {}
    operator int() const {return i;}
};

从强制转换运算符中删除 const 修饰符有什么影响? 它会影响自动转换吗?为什么?

最佳答案

如果转换运算符不是 const,则不能转换 const 对象:

const Number n(5);
int x = n; // error: cannot call non-const conversion operator

关于c++ - 强制转换运算符 - const 与非 const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2325121/

相关文章:

c++ - 使用 std::map 检查字符串是否包含重复项

c - 转换是否会在整个系统中保持低位字节一致?

c++ - 常量和非常量运算符重载

c++ - 无法在 C++ 中定义++ 运算符,这里有什么问题?

c - 如何在里面工作 printf ?

C++内联运算符重载,引用当前对象

c++ - 如何使用 C++ lambda 将成员函数指针转换为普通函数指针以用作回调

c++ - 变量定义在 C++ 的控制结构中起什么作用?

C++分配内存问题

java - Java 中的强制向下转换