c++ - 更改后在构造函数中初始化 const 变量
问题描述
我有一个客户端类,它接收一个名为 emailAdress 的 std::string 变量。这就是代码现在的样子,它可以工作:
private:
const std::string email;
Client::Client(std::string emailAddress) : email{emailAddress}
{
}
现在,我想检查电子邮件是否包含 @ 之类的字符或没有奇怪字符的有效名称。我想用正则表达式做到这一点。现在,我的问题是,如何在更改参数变量后初始化const std::string email变量?它说它不想这样做,因为它是一个 const 变量,这就是为什么它现在在构造函数的初始化列表中。
解决方案
您可以将参数传递给函数,并让函数返回修改后的字符串。
class Client {
private:
const std::string email;
static std::string validateEmail(std::string email) {
// ...
return modifiedEmail;
}
public:
Client::Client(std::string emailAddress) : email{validateEmail(std::move(emailAddress))}
{
}
};
推荐阅读
- groovy - Jira 与 groovy 连接上的状态 403
- git - 带有 CMS 的 Git:当我卸载插件时,如何在 Git 中轻松反映这一点?
- azure - 上传 azurerm_storage_blob 时出现问题,因为 azurerm_storage_container 存在
- powershell - 对 var2 的更改也会更改 var1 派生自 var1
- r - 如何在牛图顶部添加文本栏?
- reactjs - 如何在流配置中包含来自忽略的 node_modules 的路径
- android - react-native android bundle release 无法在某些设备上运行
- laravel - 如何清除 laravel 未定义变量错误
- php - 带有 PHP Api CORS 请求问题的 Angular4 应用程序
- python - ModuleNotFoundError:Django 中没有名为“posts”的模块