我创建了一个双链表结构,我想使用函数duplaLista来连接节点和插入值。我实际上在别人的问题中找到了如何将struct作为函数调用中的参数。但它不适合我(不允许不完整类型)。我也读过这个问题的答案,但我不明白我做错了什么,因为我看到应该这样做,而不是我完全理解它?有人能告诉我什么是错的,并解释我为什么?
#include "DoubleList.h"
#include<iostream>
#include<stdio.h>
#include"string"
using namespace std;
struct Cvor
{
Cvor *head;
Cvor *tail;
char vred;
Cvor(const char &value, Cvor *prev = NULL, Cvor *next = NULL) : vred(value),
head(next), tail(prev)
{}
};
void duplaLista(Cvor *cvor)
{
}
int main(int argc, char *argv[])
{
Cvor cvor;
duplaLista(cvor);
return 0;
}
答案 0 :(得分:0)
void duplaLista(Cvor *cvor)
编译器读取要从头到尾编译的程序。此时,未定义Cvor
。您对此课程的定义稍后会出现。
在C ++中,必须在使用之前定义类,模板,函数和其他所有内容。
在此处使用之前,您需要将类的定义移出main()
函数并移入全局作用域。
答案 1 :(得分:0)
这里有两个错误。首先,由于您没有为Cvor定义默认构造函数,除非您提供构造Cvor的最小基本参数,main中的声明(即Cvor cvor)将失败。你需要给它一些示例const char&amp;能够构建它。完成后,您需要修复为duplaLista提供的错误类型的参数。更正后,您的主要功能应如下所示。参数&#39; A&#39;我在下面给出的只是一个示例初始值。用你认为有用的任何东西替换它。
int main(int argc, char *argv[])
{
Cvor cvor('A');
duplaLista(&cvor);
return 0;
}