C++ 如何在类中编写优化构造函数>;

C++ 如何在类中编写优化构造函数>;,c++,class,C++,Class,我写了一个电子邮件类,但我不确定这是否是最好的方式写这个。。。这是它的代码 class email { string value; string domain; string com; string username; string encrypted; bool state ; public: email(const string& val) :value{ val}, state{false},com(),dom

我写了一个电子邮件类,但我不确定这是否是最好的方式写这个。。。这是它的代码

class email
{
    string value;
    string domain;
    string com;
    string username;
    string encrypted;
    bool state ;
public:
    email(const string& val)
        :value{ val}, state{false},com(),domain(),username(),encrypted()
    {
        for (int i = 0; i < value.size(); ++i)
        {
            if (value[i] == '@')
            {
                username = value.substr(0, i);
                for (int j = i; j < value.size(); ++j)
                {
                    if (value[j] == '.')
                    {
                        domain = value.substr(i, j);
                        com = value.substr(j+1, value.size()-1);
                        state = true;
                    }
                }
            }
        }
        if (state)
        {
            for (auto letter : value)
            {
                if (letter == ';' || letter == '\'' || letter == '[' || letter == ']')
                {
                    state = false;
                    
                }
            }

        } else throw "invalid string";
        if (state)
        {
            encrypted = username;
            for (int i = 0; i < username.size() / 2; ++i)
            {
                swap(encrypted[i], encrypted[encrypted.size() - 1 - i]);
                encrypted[i] = static_cast<char>(static_cast<int>(encrypted[i]) + 3);
                
            }
        }else throw "invalid charecters";
    }
    const string& get_domain() { return domain; }
    const string& get_username() { return username; }
    const string& get_com() { return com; }
    const string& get_enc() { return encrypted; }
    const  bool good () const { return state; }
};
class电子邮件
{
字符串值;
字符串域;
字符串com;
字符串用户名;
字符串加密;
布尔州;
公众:
电子邮件(常量字符串和val)
:值{val},状态{false},com(),域(),用户名(),加密()
{
对于(int i=0;i