C++错误:调用"跟踪::跟踪(字符,字符)"没有匹配函数

C++ error: no matching function for call to 'Track::Track(char, char)'

本文关键字:跟踪 字符 函数 错误 C++ 调用      更新时间:2023-10-16

我正在尝试将一维数组分配给我的默认构造函数,但我不断收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个没有参数,一个有参数?

页眉

#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

.cpp

#include "subway.h"
SubwaySystem::SubwaySystem()
{
    my_track[0] = Track('a', 'b'); //error here 
    ...
}

我没有看到任何接受两个参数的类跟踪的构造函数。因此,您会收到编译器错误。您需要为 Track 类定义一个 2 参数构造函数。