当我声明类型时,为什么我的函数未定义?

时间:2015-08-09 23:59:02

标签: c++ class

您好我只是想在C ++中学习单独的Classes。我不知道为什么我的代码不起作用。 所以这是主文件代码

#include <iostream>
#include "Number.h"

using namespace std;

int main()
{
    Number key;
    key.setNumber(200);
    cout<<key.getNumber();
    return 0;
}

这是Class cpp函数文件代码

#include "Number.h"
#include <iostream>
using namespace std;

void Number::setNumber(int transfernumber)
    {
    privatenumber = transfernumber;
    }

int Number::getNumber()
    {
        return privatenumber;
    }

这是头文件

#ifndef NUMBER_H
#define NUMBER_H


class Number
{
    public:
        Number();
        void setNumber(int transfernumber);
        int getNumber();
    private:
        int privatenumber;
};

#endif // NUMBER_H

由于

2 个答案:

答案 0 :(得分:2)

在cpp文件中,您需要为Number类定义默认构造函数。例如:

Number::Number() : privatenumber(0) {}

答案 1 :(得分:0)

我测试了你的例子。 main.cpp发生的错误无法找到number.cpp。您有三种方法可以解决它:

  1. main()写入number.cpp,而不是单独文件。
  2. 使用linux命令main.cpp编译gcc或编写Makefile,而不是使用代码块。
  3. 如果要使用代码块进行编译,则应创建项目,然后将三个文件添加到项目中。现在编译main.cpp
  4. 使用上述三种方式,我认为您将成功编译。

    顺便说一句,你应该添加Number::Number()的实现。