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

Can't call non-static member function from imported class c++

本文关键字:调用 静态成员 函数 c++ 导入      更新时间:2023-10-16

我的问题是line memory.initboard();我已经使用构造函数实例化了内存实例,该构造函数可以很好地解决。一旦我尝试使用点通知调用成员函数,我就会出现错误:

架构的未定义符号x86_64: " board :: initboard()",从: _ Main在CCPQWFDT.O中LD:架构找不到符号x86_64

我已经尝试删除板::在.cpp文件中initboard之前,但这无效。有人知道为什么我不能称呼此成员函数?

这是主要功能

#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(){
}

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