Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构造函数不允许返回类型(通用链表) 我试图用模板在C++中生成一个通用链表。但是我得到了这个错误“GenericNode::{ctor}”:构造函数不允许返回类型,通过它我不可能知道我做错了什么? 另外,我也看过其他关于堆栈溢出的文章,其中说错误是由于类定义后缺少分号造成的,但我认为我没有“缺少分号”的情况。有什么帮助吗_C++_Templates_Linked List - Fatal编程技术网

构造函数不允许返回类型(通用链表) 我试图用模板在C++中生成一个通用链表。但是我得到了这个错误“GenericNode::{ctor}”:构造函数不允许返回类型,通过它我不可能知道我做错了什么? 另外,我也看过其他关于堆栈溢出的文章,其中说错误是由于类定义后缺少分号造成的,但我认为我没有“缺少分号”的情况。有什么帮助吗

构造函数不允许返回类型(通用链表) 我试图用模板在C++中生成一个通用链表。但是我得到了这个错误“GenericNode::{ctor}”:构造函数不允许返回类型,通过它我不可能知道我做错了什么? 另外,我也看过其他关于堆栈溢出的文章,其中说错误是由于类定义后缺少分号造成的,但我认为我没有“缺少分号”的情况。有什么帮助吗,c++,templates,linked-list,C++,Templates,Linked List,代码: GenericLinkedList.h: #pragma once template <typename Datatype> class GenericNode { Datatype T; GenericNode *next; public: GenericNode() {} GenericNode(Datatype T); }; template<typename Datatype> void GenericNode&

代码:

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 << " ";
    }
}
#pragma一次
模板
类GenericNode{
数据类型T;
GenericNode*下一步;
公众:
GenericNode(){}
GenericNode(数据类型T);
};
模板
void GenericNode::GenericNode(数据类型数据){
T=数据;
}
模板
类GenericLinkedList{
GenericNode*数据;
公众:
GenericLinkedList(){
数据=空;
}
int是空的();
void addDataAtFront(数据类型数据);
void addDataAtEnd(数据类型数据);
作废打印();
};
模板
int GenericLinkedList::isEmpty(){
返回数据==NULL;
}
模板
void GenericLinkedList::addDataAtFront(数据类型数据){
GenericNode*newNode,*tmpNode;
newNode=新节点;
newNode->T=数据;
newNode->next=NULL;
如果(数据==NULL){
数据=新节点;
}
否则{
tmpNode=数据;
数据=新节点;
数据->下一步=tmpNode;
}
}
模板
void GenericLinkedList::addDataAtEnd(数据类型数据){
GenericNode*newNode,*tmpNode;
newNode=新节点;
newNode->T=数据;
newNode->next=NULL;
如果(数据==NULL){
数据=新节点;
}
否则{
tmpNode=数据;
while(tmpNode->next!=NULL){
tmpNode=tmpNode->next;
}
tmpNode->next=newNode;
}
}
模板
void GenericLinkedList::print(){
通用节点tmpNode;
tmpNode=数据;
for(tmpNode;tmpNode!=NULL;tmpNode=tmpNode->next){
cout
模板
void GenericNode::GenericNode(数据类型数据){
T=数据;
}

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

void GenericNode::GenericNode(数据类型数据)
移除void它是一个构造函数。构造函数不返回,也没有返回类型。

void
是多余的。@songyuanyao不是多余的,只是定义构造函数时不允许。哦,我的天啊!我觉得太傻了:(是的,我犯了个愚蠢的错误!:/anyways谢谢!
#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;
}