gpt4 book ai didi

c++ - 在构造函数中初始化常量字符串? C++

转载 作者:太空宇宙 更新时间:2023-11-04 15:59:37 26 4
gpt4 key购买 nike

//Person declaration
Class Person {
public:
Person();
const String getName() const;
private:
const String name;
};

//Person definition
#include "Person.h"
Player::Player() {
cout << "Enter name: ";
cin >> name;
}

如果我想在创建类时初始化人的名字,使用默认构造函数和初始化列表,但 name_ 是一个常量的约束,我该怎么做呢?

我不相信 name 的 init 列表会起作用,考虑到据我所知,init 列表在创建时设置值,并且 name 是一个常量,此时它不再是可修改的。

假设我创建了一个 Person();在另一个类中,我如何在该类实例的生命周期内将它们的名称最初设置为 const?

最佳答案

不要在构造函数中提示输入。将 IO 移到函数外部并使构造函数将字符串作为参数。然后,将字符串从用户传递给构造函数。

class Person {
public:
Person(const std::string& name)
: name_(name) {}
const std::string& getName() const { return name_; }
private:
const std::string name_;
};

...

std::string name;
std::cin >> name;
Person person(name);

关于c++ - 在构造函数中初始化常量字符串? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47745473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com