繁体   English   中英

src \\ class-name.cpp中的C ++类错误

C++ Class error in src\class-name.cpp

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在C ++中进行有趣的编程已经有将近一年了。 但是我一直都避免上课(是的,我知道,不好的主意)。 我的.cpp文件有问题

#include "Password.h"

Password::Password() //<-- error here 
{
    //ctor
}

Password::~Password() //<-- and here
{
    //dtor
}

这两个地方会给我一个错误。 错误是“错误:“ Password :: Password()”的原型与“ Password”类中的任何内容都不匹配”,我试图将所有内容注释掉,没有它,程序似乎运行良好。

你们知道什么地方可能出问题吗? 我已经搜索了几个小时,但找不到任何东西。 我正在使用代码块

用Password.h编辑

#ifndef PASSWORD_H

#define PASSWORD_H

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

class Password
{
       protected: /* A password should be protected, right? */
        string password; /* The string to store the password */
        string input; /* The string to store the input */


public:
    /* Constructor, pass a string to it (the actual password) */
    Password (string pass) {this->password = pass;}
    void Input () /* Get the password from the user */
    {
        while (true) /* Infinite loop, exited when RETURN is pressed */
        {
            char temp;
            temp= getch(); /* Get the current character of the password */
            //getline(cin, temp);
            if (cin.get() == '\n') {
            return;
            }
            /* Exit the function */
            input += temp;
            cout << '*'; /* Print a star */
        }
    }
    bool Compare () /* Check if the input is the same as the password */
    {
        if (password.length() != input.length()) /* If they aren't the same length */
            return false; /* Then they obviously aren't the same! */
        for (unsigned int i = 0; i <= input.length(); i++)
        { /* Loop through the strings */
            if (password[i] != input[i])
                return false; /* If anything is not a match, then they are not the same */
        }
        return true; /* If all checks were passed, then they are the same */
    }
};

#endif // PASSWORD_H

这是我从http://www.dreamincode.net/forums/topic/59437-how-to-make-a-password-show-as-stars/中获得的一些代码。

1 个回复

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

为了那个原因,

  1. 该功能必须已经声明过(在Passwordclass声明中)-
    • 并且应该使用相同的签名进行声明,并且
  2. 该函数必须尚未定义-仅声明;
    • 否则,您将定义一个函数两次,编译器将抱怨。

在您的.h文件中,您具有:

Password (string pass) {this->password = pass;}

在这里,您会注意到两个问题:

  1. 该构造函数的签名与cpp文件中定义的构造函数的签名不同。 构造函数Password() 在任何地方都不存在,因此无法在cpp文件中定义!
  2. 构造函数已经定义,因此如果您在cpp文件中修复构造函数的签名以包含string pass ,则会看到一个新错误。

使您的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
}
1 使用C ++类和test.cpp和Opencv库链接错误

我对C ++编程不了解,但是我通常使用Java开发。 我正在上计算机视觉课程,我们在C ++中使用opencv。 我们还使用Visual Studio v2012。 我试图用一个类和一个Test cpp文件使Otsu成为本草,但是我遇到了链接错误。 很抱歉,如果问题是基本的, ...

2 c ++中的class(cpp文件和h文件)

创建和定义类后(在“h文件”中)。 除了“h file”(属于该类)之外,我如何决定创建(或不创建)“cpp文件”(仅适用于该类)? ...

2012-11-12 10:03:22 3 4003   c++/ class
3 在2个cpp文件中定义C ++类?

我可以在1个头文件中声明我的类,并在2个独立的cpp文件中定义它吗? (例如在C#中) 主要原因是我减少了现在拥有的单个文件中类定义的行数。 顺便说一句,我所有的标题都是“包括防护” +“一次编译指示”。 标头: "foo.h" 资料来源: "foo.cpp" 和" ...

4 C ++标头或.cpp中的类变量声明?

到目前为止,我一直在使用以下方式的类: GameEngine.h声明该类如下 我的GameEngine.cpp文件然后只是实现方法 但是,我最近读到变量声明不应该在头文件中。 在上面的例子中,这将是一个inputManager和a,b,c。 现在,我一直在寻找放置变 ...

5 将类分为cpp和头文件(C ++)

我是C ++语言的新手。 因此,我被分配将现有文件分成三个源代码:swap.h,swap.cpp和source3.cpp 现有文件: swap.h包含函数原型 swap.cpp包含函数实现 source3.cpp包含主要功能 对于swap.h: ...

6 在C ++中的Header和Cpp文件中使用类

我得到了一个名为Node.h的头文件,其定义为: 但是,没有为构造函数设置任何参数,那么如何将max_number_of_resistors初始化为另一个cpp文件获取的内容? 我可以在此名为get_data(int node,int res)的头文件中以及在我的Node.cpp文件中 ...

2013-10-13 17:04:29 1 157   c++
7 c++ 在类中使用列表(.cpp .h)

有人能告诉我为什么这不运行吗? 你能告诉我一个解决方案吗 主程序 测试.h 测试.h 编译器说列表没有声明,但如果我把列表放在 main 中,它会完美运行。 我已经在几个编译器中尝试过这个。 有人能告诉我为什么这不运行吗? 提前致谢 ...

2017-10-31 18:04:04 1 49   c++/ class
8 C ++错误:标识符“类名”未定义

我刚刚开始在C ++中使用类。 作为第一个面向对象的项目,我想编写一个用于Pen and Paper游戏的角色创建程序。 我创建了包括继承的类结构。 这是一个示例类: 这是主要的: 如果不太明显,它们位于两个不同的文件/项目中。 我认为这并不重要,但它们也位于两个 ...

2015-01-23 22:36:49 1 2893   c++/ class
9 错误:'class'没有命名类型C ++

我见过很多关于此事的帖子。 但无论如何无法解决我的问题。 我的问题是我想从我的班级B发送一个爆炸到我的班级A.班级A已经宣布了B级(B b;)但是在B级不能做同样的事情(A a;) 看到如果A类包括B类,那么如果B类包含A类则不起作用。 “一个a没有命名类型” 我将展示我的 ...

2013-04-29 10:31:13 1 7222   c++
10 将 C++ 类分成头文件和 cpp 文件

所以这是我第一次尝试将班级分开……但我遇到了一些麻烦。 这是 .h 文件 这是cpp ... 我做错了什么吗? 错误: 错误 C2146:语法错误:缺少“;” 在标识符“课程名称”之前 错误 C4430:缺少类型说明符 - 假定为 int。 注意:C++ 不支持 default- ...

2015-11-10 19:58:25 3 104   c++/ class
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM