我有一个如下所示的类:

时间:2016-11-11 19:33:21

标签: c++ oop

class ContUser
{
    char *display_Name;
    char *email;
    char password[10];
    const int id_user;
    char user_type;
    int badges_nr;
    char **badges;

     ContUser(char *dn, char *e, char p[10],int id,char tip) : id_utilizator(id) {
        display_Name = new char[strlen(dn) + 1];
        strcpy(display_Name, dn);

        email = new char[strlen(e) + 1];
        strcpy(email, e);
    }
};

我有一个错误:

  

display_Name 0xcccccccc错误读取字符串字符;

两个对象displaynameemail,我无法理解为什么。 This is my error(无法读取内存)。

这是我创建ContUser实例的部分

void main()
{
    ContUtilizator c2("Mariam31", "mariam@yahoo.com", "Passwordd", 12, 'V');
    c2.display();
}

1 个答案:

答案 0 :(得分:1)

您应该使用标准模板库重写该类。这可以针对您提供的代码段执行,如下所示:

class ContUser
{
    std::string display_Name;
    std::string email;
    std::string password;
    const int id_user;
    char user_type;
    int badges_nr;
    std::vector< std::string> > badges;

    ContUser(char *dn, char *e, char p[10], int id, char tip) : id_utilizator(id)
    {
        display_Name = std::string(dn);
        email = std::string(e);
    }
};