C++;src\Class-name.cpp中的类错误 已经在C++编程了将近一年了。然而,我一直在逃课(是的,我知道,这是个坏主意)。 我的.cpp文件有问题 #include "Password.h" Password::Password() //<-- error here { //ctor } Password::~Password() //<-- and here { //dtor } #包括“Password.h” Password::Password()//

C++;src\Class-name.cpp中的类错误 已经在C++编程了将近一年了。然而,我一直在逃课(是的,我知道,这是个坏主意)。 我的.cpp文件有问题 #include "Password.h" Password::Password() //<-- error here { //ctor } Password::~Password() //<-- and here { //dtor } #包括“Password.h” Password::Password()//,c++,class,C++,Class,Password::Password(){…}将定义一个已声明的函数 为此, 该函数必须已声明(在密码的声明的类中)-- 并且它应该声明为具有相同签名的,并且 函数不能已经定义——只能声明; 否则,您将定义一个函数两次,编译器将抱怨 在.h文件中,您有: Password (string pass) {this->password = pass;} 在这里,您可以注意到两个问题: 此构造函数的签名与cpp文件中定义的构造函数的签名不同;构造函数Password()在任何地方都不存

Password::Password(){…}
将定义一个已声明的函数

为此,

  • 该函数必须已声明(在
    密码的
    声明的
    类中)--
    
    • 并且它应该声明为具有相同签名的,并且
  • 函数不能已经定义——只能声明;
    • 否则,您将定义一个函数两次,编译器将抱怨
  • .h
    文件中,您有:

    Password (string pass) {this->password = pass;}
    
    在这里,您可以注意到两个问题:

  • 此构造函数的签名与cpp文件中定义的构造函数的签名不同;构造函数
    Password()
    在任何地方都不存在,因此无法在cpp文件中定义它
  • 构造函数已经定义,因此如果在cpp文件中修复构造函数的签名以包含
    字符串传递
    ,您将看到一个新错误

  • 让您的CPP代码按原样工作

    您的
    password.h
    应更改其
    class password
    声明,以包括:

    // Password.h
    class Password {
    public:
        Password(); // default ctor ; declared, not defined
        ~Password(); // default dtor ; declared, not defined
    }
    

    在cpp文件中使用
    Password::Password
    与头文件具有相同的行为

    更改头文件,以便:

    // password.h
    ...
    Password (string pass); // only declared
    ...
    
    然后更改CPP文件:

    Password::Password(std::string pass) { // ctor
    }
    
    Password::Password(){…}
    将定义一个已声明的函数

    为此,

  • 该函数必须已声明(在
    密码的
    声明的
    类中)--
    
    • 并且它应该声明为具有相同签名的,并且
  • 函数不能已经定义——只能声明;
    • 否则,您将定义一个函数两次,编译器将抱怨
  • .h
    文件中,您有:

    Password (string pass) {this->password = pass;}
    
    在这里,您可以注意到两个问题:

  • 此构造函数的签名与cpp文件中定义的构造函数的签名不同;构造函数
    Password()
    在任何地方都不存在,因此无法在cpp文件中定义它
  • 构造函数已经定义,因此如果在cpp文件中修复构造函数的签名以包含
    字符串传递
    ,您将看到一个新错误

  • 让您的CPP代码按原样工作

    您的
    password.h
    应更改其
    class password
    声明,以包括:

    // Password.h
    class Password {
    public:
        Password(); // default ctor ; declared, not defined
        ~Password(); // default dtor ; declared, not defined
    }
    

    在cpp文件中使用
    Password::Password
    与头文件具有相同的行为

    更改头文件,以便:

    // password.h
    ...
    Password (string pass); // only declared
    ...
    
    然后更改CPP文件:

    Password::Password(std::string pass) { // ctor
    }
    

    头文件
    Password.h
    中有什么内容?您是否在其中声明了此构造函数和析构函数?头文件
    Password.h
    中有什么内容?你在里面声明了这个构造函数和析构函数吗?