如何通过接受用户输入来设置类的常量成员值
How to set constant member value of class by taking user input?
class person
{
public:
person(string var):name(var){}
void input()
{
string var;
cout << "Enter your name: ";
getline(cin, var);
person temp(var);
this->name = temp.name;
}
private:
const string name;
};
我正在尝试通过获取用户输入来设置类的常量成员(这是私有的),该输入由名为 input(在公共中)的函数完成,C++允许我们将常量变量分配给其他常量变量,但在类中我正在使用这个指针来做这件事,但它给出了错误。
。而且我不使用构造函数来做这件事。这东西在C++可能吗?
不,这是不可能的。 const
类成员值需要在构造时确定。
关键字 const 实际上是出于同样的原因使用的,即它的值不能在其整个生命周期中更改,或者在整个变量在其范围内......
所以一个贴花为 const 的变量,它的值不能在代码中(声明除外)中更改,也不能在运行时更改
相关文章:
- 私有类型的静态常量成员
- constexpr构造函数需要常量成员函数时出现问题
- Clang 格式 10.0 与 5.0 常量成员函数的格式不同
- 为什么"具有常量成员的结构"类型的指针不能指向"具有非常量成员的结构"?
- 常量成员函数中成员变量的类型
- 如何处理运算符=中的常量成员?
- 常量成员和没有setter的私有成员之间有什么区别
- C++:允许临时对象调用非常量成员函数的设计理念是什么?
- 移动具有常量成员的类的构造和分配
- ARM C++编译器不会编译具有可变常量成员的结构
- 强制在编译时计算类的类的常量成员
- 类中常量成员函数的 c++ 链接错误
- 为什么常量成员可以初始化两次?
- 专用常量成员函数的成员检测
- 与其他静态const成员初始化静态常量成员
- 具有静态和常量成员变量的对象
- 结构中的常量成员即使在初始化后也返回 0
- 在非常量成员函数中,为什么点这个非常量,而 decltype 指针这是常量
- 有没有一种通用方法来"unprotect"静态常量成员?
- 如何初始化共享复杂初始化代码的多个常量成员变量?