C++ g++';未定义对'的引用;我的构造器?

C++ g++';未定义对'的引用;我的构造器?,c++,C++,Maps.cc 尝试运行此操作时,我收到一个错误“未定义对Map::Map()的引用” 编译器是否自己为map类创建了名称空间,然后正在尝试使用它 如果我在自定义名称空间下创建Map类,noargs构造函数在main中不起作用,那么应该如何正确创建这些类/名称空间?您的Maps.cc应该如下所示: #include "maps.h" #include "schedule.h" using namespace std; int main() { Map PawneeMapCoordinates;

Maps.cc

尝试运行此操作时,我收到一个错误“未定义对
Map::Map()
的引用”

编译器是否自己为map类创建了名称空间,然后正在尝试使用它


如果我在自定义名称空间下创建Map类,noargs构造函数在main中不起作用,那么应该如何正确创建这些类/名称空间?

您的
Maps.cc
应该如下所示:

#include "maps.h"
#include "schedule.h"
using namespace std;

int main()
{
Map PawneeMapCoordinates;
}
#包括
#包括
#包括
#包括
#包括“maps.h”//Important!
//#define NUM_LOCATIONS 25//将其移动到头文件
使用名称空间std;
Map::Map(){
numLocs=NUM_位置;
}
void映射::initializeMap(字符串文件){
...
}

问题是,在cc文件中声明了一个新的类映射,并且没有实现头文件中“实际”映射类的方法。实现必须如下所示。

您是如何编译和链接的?第一个代码段来自哪个文件?@birdfreeahoo来自一个名为Maps的文件。cc@UnholySheep关于GDBcurrently@SterlingRalph:GDB是一个调试器。GNU项目确实有C++编译器;一般称为
g++
。您正在使用它吗?如果是,如何使用?我的maps.cc类实际上包含多个类,我如何使用每个文件中多个类来实现这一点?每个类都有自己的带有声明的头文件,以及带有实现的.cc文件。在.cc文件中,包含相应的头文件并实现如下所示的方法。不幸的是,我受到限制,因为我被告知“Maps.cc”和“Maps.h”必须包含两个类(Map和MapLocation)。这怎么可能?这也行。您可以在Maps.h中声明这两者,并在Maps.cc中实现这两者。您必须首先声明另一个类引用的类。
#include "maps.h"
#include "schedule.h"
using namespace std;

int main()
{
Map PawneeMapCoordinates;
}
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

#include "maps.h" // Important!

// #define NUM_LOCATIONS 25 // Move this to the header file
using namespace std;

Map::Map() {
    numLocs = NUM_LOCATIONS;
}

void Map::initializeMap(string filen) {
    ...
}