c++ - 可以初始化但不能赋值的对象

标签 c++ initialization variable-assignment

我需要创建一个类,它的对象可以初始化但不能赋值。

我想也许我可以通过不定义赋值运算符来做到这一点,但是编译器使用构造函数来进行赋值。

我需要这样:

Object a=1;    // OK
a=1;           // Error

我该怎么做?

最佳答案

制作 a const 就可以了

const Object a=1;    // OK

现在您将无法为 a 分配任何值,因为 a 被声明为 const。注意,如果将a 声明为const,则需要在声明时初始化a

一旦您将 a 声明为 const 并对其进行初始化,您将无法将任何其他值分配给 a

 a=1;   //error

关于c++ - 可以初始化但不能赋值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975114/

相关文章:

c++ - 将字节数组转换为 POD

C++ 调用 Struct 及其继承成员的默认构造函数

c - 变量被视为未初始化

c - 尝试使用 const 初始化变量时出现错误 "initializer element is not constant"

R: += (plus equals) 和++ (plus plus) 等价于 c++/c#/java 等?

c++变量重新分配被代码忽略

c++ - boost::optional<size_t>& = boost::none 编译错误

c++ - 在 map 中使用 unique_ptr 时 std::pair 中的已删除函数

c++ - 用于端口转发的 libssh2 示例代码

javascript - 在 JavaScript 中为 const 赋值从右到左与从左到右