我的问题在于行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(){
}
答案 0 :(得分:1)
您应该从函数定义中删除inline
。这使它仅在Board.cpp
中可用。