【问题标题】:Why am I getting an "error: declaration of 'Coin::Coin()' outside of class is not definition" message?为什么我收到“错误:在类外声明 \'Coin::Coin()\' 不是定义\”消息?
【发布时间】:2022-10-01 00:06:43
【问题描述】:

我只是在学习 C++ 中的类,我正在尝试创建这个 Coin 类,它使用一个名为 toss() 的方法来模拟硬币翻转,该方法将返回分别代表正面或反面的 0 或 1。

#include <iostream>
#include <cstdlib>

using namespace std;

class Coin {
    private:

    public:
        Coin();
        int toss();
};

Coin::Coin();

int Coin::toss() {

    int num;

    for (int i = 1; i <= 2; i++)
        num = rand();

    return num;

}

int main() {

    Coin C;

    cout << C.toss() << endl;

}

我不断收到一条错误消息:error: declaration of \'Coin::Coin()\' outside of class is not definition。我假设我没有正确声明我的构造函数,但我不确定。

  • Coin::Coin(); 替换为Coin::Coin(){} 课外
  • 您可以从头文件和 cpp 文件中删除构造函数,因为它什么都不做。

标签: c++ class oop


【解决方案1】:

问题是您在编写Coin::Coin(); 时试图在类之外声明构造函数。

解决这将Coin::Coin(); 替换为Coin::Coin(){},如下所示:

class Coin {
    private:

    public:
        Coin();
        int toss();
};
//----------v--->semicolon removed from here
Coin::Coin()    //this is a definition now 
{
}

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多