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 
    ...

}