C++ C++;错误:对';的调用没有匹配函数;Track::Track(char,char)和#x27;
我试图将一维数组分配给我的默认构造函数,但我一直收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个没有参数,一个有参数 标题C++ C++;错误:对';的调用没有匹配函数;Track::Track(char,char)和#x27;,c++,class,compiler-errors,C++,Class,Compiler Errors,我试图将一维数组分配给我的默认构造函数,但我一直收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个没有参数,一个有参数 标题 #include <iostream> #include <string> using namespace std; #ifndef SUBWAY_H #define SUBWAY_H class Track { public: //Default Constructor Track();
#include <iostream>
#include <string>
using namespace std;
#ifndef SUBWAY_H
#define SUBWAY_H
class Track
{
public:
//Default Constructor
Track(); //error here
//Destructor
~Track();
//Member variables
char node_1;
char node_2;
bool visited;
};
class Station
{
public:
//Default Constructor
Station();
//Destructor
~Station();
//Member variables
char station_name;
int track_starting_ID;
int track_size;
};
class SubwaySystem
{
public:
//Default Constructor
SubwaySystem();
//Destructor
~SubwaySystem();
//Member variables
Track my_track[34];
Station my_station[12];
int count_routes;
};
#endif
我没有看到任何接受两个参数的类跟踪构造函数。因此,您将得到一个编译器错误。您需要为类Track定义一个2参数构造函数。所以我添加了Track(char a,char b),但现在我在我的cpp文件中得到了未定义的引用。您在cpp文件中定义了两参数构造函数吗?我相信是的。我有:Track::Track(char a,char b){node_1=a;node_2=b;}没关系,我算出了。我没有在cpp文件中定义析构函数。
#include "subway.h"
SubwaySystem::SubwaySystem()
{
my_track[0] = Track('a', 'b'); //error here
...
}