C ++头文件说该变量未定义:

时间:2014-07-18 19:51:25

标签: c++

我有这堂课:

class A 
{
 public :

   int Echo (int param)
   {
      int num = param + 5;
      return num;
   }
}

然后在我的Header.h中我提出了以下定义:

#ifndef A_H
#define A_H
  class A 
{
 public :

   int Echo (int param1)
   {
          return num;
    }

#endif

我有这些问题:

1-如何在Header.h中定义类?它们是否应该与原始* .cpp文件完全相同,或者它们的签名是否足够?

2- Header文件中的定义是否应附带函数的return语句?像这样:

int Echo(int param)
{
   return num;
}

我问过类似的问题,但问题不同,StackOverflow中编辑导致完全不同的问题陈述的问题是不可接受的。

1 个答案:

答案 0 :(得分:2)

您的头文件应如下所示:

//something.h
#ifndef A_H
#define A_H

class A{
 public :
   int Echo (int param1);
};
#endif

这被称为制作函数原型。您将函数的实际主体放在.cpp文件中:

//something.cpp

#include "main.h"

int A::Echo (int param)
{
   int num = param + 5;
   return num;
}
从您的主文件

,包括头文件,它应该工作。将.cpp文件提供给编译器(如果您使用的是IDE,它将为您执行此操作) 示例主文件:

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

using namespace std;

int main()
{
   cout << "Hello World" << endl; 
   A a;
   cout << a.Echo(10) << endl;
   return 0;
}