在头文件(.h)中声明构造函数然后在类文件(.cpp)中定义的语法C++

use*_*058 12 c++ constructor

如果有人可以解决这个问题,我将不胜感激.我认为可行的示例(假设所需的#include语句存在):

//.h file
class someclass(){}

//.cpp
someclass::
    someclass(){
         //implementation
         // of 
         //class
};
Run Code Online (Sandbox Code Playgroud)

bil*_*llz 24

someclass.h文件

#ifndef SOME_CLASS_H
#define SOME_CLASS_H    

class someclass
{
public:
  someclass();  // declare default constructor

private:
  int member1; 
};

#endif
Run Code Online (Sandbox Code Playgroud)

someclass.cpp

someclass::someclass()   // define default constructor
: member1(0)             // initialize class member in member initializers list
{
   //implementation
}
Run Code Online (Sandbox Code Playgroud)


Bil*_*eal 6

标题:

//.h file
class someclass
{
    someclass();
}; // <-- don't forget semicolon here
Run Code Online (Sandbox Code Playgroud)

来源:

#include "someClass.h"
//.cpp
someclass::someclass()
{
    // Implementation goes here
} // <-- No semicolon here
Run Code Online (Sandbox Code Playgroud)

  • 这不是`#include "someclass.h` [不带大写C] (2认同)

And*_*owl 5

如果要为其提供定义,则必须在类中声明构造函数。你只是在做第二件事。

此外,您的原始类定义包含一些错误:类名后不需要括号,最后一个大括号后需要分号。

class someclass
{
    someClass(); // Here you DECLARE your constructor
};

...

someclass::someclass() // Here you DEFINE your constructor
{
    ...
}
Run Code Online (Sandbox Code Playgroud)