无法从导入的类c ++中调用非静态成员函数

时间:2014-01-22 21:46:47

标签: c++ non-static

我的问题在于行memory.initBoard();我用构造函数实例化了一个内存实例,它解析得很好。一旦我尝试使用点符号调用成员函数,我收到一个错误:

架构x86_64的未定义符号:   “Board :: initBoard()”,引自:       _main在ccpQWFDT.o中 ld:找不到架构x86_64的符号

我尝试在.cpp文件中删除了init ::之前的Board ::但是没有用。任何人都知道为什么我不能称这个成员函数?

这是主要功能

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

int main(){
Board memory(8);
memory.initBoard();
return 0;
}

这是.h文件

#ifndef BOARD_H
#define BOARD_H
#include <vector>

class Board {
   private:
       Board(){}
   public:
      int board_size;
      Board(int size);
      void initBoard();
 };
#endif

这是与.h文件一起使用的.cpp

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

Board::Board(int size) {

}
inline void Board::initBoard(){

}

1 个答案:

答案 0 :(得分:1)

您应该从函数定义中删除inline。这使它仅在Board.cpp中可用。