c++ 在InsertFlight方法中获得Visual Studio错误代码C2665,但我不知道如何修复

lx0bsm1f  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(109)

我想张贴整个代码,但我在网站上的格式问题。但我张贴的代码结构和InsertFlight是在一个类。我会尝试张贴完整的代码,如果需要的话

struct FlightRec {
string FlightNO;
string Destination;
TimeRec Time;
FlightType Ftype;
bool Delay;
TimeRec ExpectedTime; // if the flight is delayed
};

template <class T>

struct Node {
    T entry;
    Node<T>* next;
};

// Add a flight to the list
void InsertFlight(const T& flight) {
    // Create a new node for the flight
    Node<T>* node = new Node<T>(flight);
    // Add the node to the head of the list
    node->next = head;
    head = node;
}
vom3gejh

vom3gejh1#

您从未为Node定义过构造函数,所以我不确定您希望它做什么。

Node<T>* node = new Node<T>(flight);

您可以定义一个接受T并将next设置为nullptr的构造函数,然后您的new应该可以工作。

template <class T>
struct Node {
    Node(const T& _entry) : entry(_entry) {}
    T entry;
    Node<T>* next = nullptr;
};

相关问题