构造函数不允许返回类型(泛型链表)



我正在尝试使用模板在c++中创建一个通用链表。但我得到这个错误'GenericNode::{ctor}':构造函数不允许返回类型,通过它我不可能知道我做错了什么?附注:我也通过其他帖子在这里堆栈溢出说,错误是由于类定义后缺少分号,但我认为我没有"丢失分号"的情况下。任何帮助吗?

代码:

GenericLinkedList.h:

#pragma once
template <typename Datatype>
class GenericNode {
    Datatype T;
    GenericNode *next;
public:
    GenericNode() {}
    GenericNode(Datatype T);
};
template<typename Datatype>
void GenericNode<Datatype>::GenericNode(Datatype data) {
    T = data;
}
template <typename Datatype>
class GenericLinkedList {
    GenericNode *Data;
public:
    GenericLinkedList() {
        Data = NULL;
    }
    int isEmpty();
    void addDataAtFront(Datatype data);
    void addDataAtEnd(Datatype data);
    void print();
};
template <typename Datatype>
int GenericLinkedList<Datatype>::isEmpty() {
    return Data == NULL;
}
template <typename Datatype>
void GenericLinkedList<Datatype>::addDataAtFront(Datatype data) {
    GenericNode *newNode, *tmpNode;
    newNode = new Node;
    newNode->T = data;
    newNode->next = NULL;
    if (Data == NULL) {
        Data = newNode;
    }
    else {
        tmpNode = Data;
        Data = newNode;
        Data->next = tmpNode;
    }
}
template <typename Datatype>
void GenericLinkedList<Datatype>::addDataAtEnd(Datatype data) {
    GenericNode *newNode, *tmpNode;
    newNode = new Node;
    newNode->T = data;
    newNode->next = NULL;
    if (Data == NULL) {
        Data = newNode;
    }
    else {
        tmpNode = Data;
        while (tmpNode->next != NULL) {
            tmpNode = tmpNode->next;
        }
        tmpNode->next = newNode;
    }
}
template <typename Datatype>
void GenericLinkedList<Datatype>::print() {
    GenericNode tmpNode;
    tmpNode = Data;
    for (tmpNode;tmpNode != NULL;tmpNode = tmpNode->next) {
        cout << tmpNode->T << " ";
    }
}

. cpp:

#include <iostream>
#include <conio.h>
#include "GenericLinkedList.h"
using namespace std;
int main() {
    GenericLinkedList<int> T;
    T.addDataAtFront(5);
    T.addDataAtEnd(6);
    T.addDataAtFront(4);
    T.print();
    _getch();
}
template<typename Datatype>
void GenericNode<Datatype>::GenericNode(Datatype data) {
    T = data;
}

返回类型void。它是一个构造函数

void GenericNode::GenericNode(Datatype data)删除void的构造函数。构造函数不返回,也没有返回类型

最新更新