【发布时间】:2013-02-25 09:38:42
【问题描述】:
#include <iostream>
using namespace std;
struct Nodo{
Nodo *siguiente,*anterior;
char* Nombre,*Curso;
int carnet;
Nodo(){
siguiente=anterior=NULL;
}
};
struct ListaCircular{
Nodo *PrimerNodo,*UltimoNodo;
ListaCircular(){
PrimerNodo->siguiente=PrimerNodo->anterior=UltimoNodo;
UltimoNodo->siguiente=UltimoNodo->anterior=PrimerNodo;
}
void RegistrarUnaInclusion();
void BuscarInclusion();
void EliminarInclusion();
void RechazarAprobarInclusion();
void MostrarInclusiones();
};
void ListaCircular::RegistrarUnaInclusion(){
ListaCircular *Lista=new ListaCircular();
PrimerNodo->Curso="EstructurasDeDatos";
PrimerNodo->Nombre="Roberto";
PrimerNodo->carnet=201243031;
UltimoNodo->Curso="POO";
UltimoNodo->Nombre="Luis";
UltimoNodo->carnet=201233212;
Nodo *Nuevo;
char *Nom,*Cur;
long Car;
cout<<"Ingrese el nombre del estudiante que va a registrar"<<endl;
cin>>Nom;
Nuevo->Nombre=Nom;
cout<<"Ingrese el care del estudiante "<<Nuevo->Nombre<<endl;
cin>>Car;
Nuevo->carnet=Car;
cout<<"Ingrese el curso al que desea hacer la inclusion"<<endl;
cin>>Cur;
Nuevo->Curso=Cur;
}
当我尝试运行我的代码时,它会向我发送一条错误消息,并说类似这样的话:
对`_WinMain@16' collect2 的未定义引用:ld 返回 1 个退出状态
我不知道是不是因为没有“main”函数,另外,我如何调用函数“RegistrarUnaInclusion”来使其工作?
【问题讨论】:
-
C++ 书中的第一课不是“每个程序都需要一个
int main()函数”吗? -
是的,但是有一种方法可以使 void ListaCircular::RegistrarUnaInclusion() 成为主要功能,我不知道该怎么做
-
@RobertoHernandez:不,没有办法,也没有任何意义。也许你已经习惯了其他有意义的语言(我现在可能不是那些语言),但在 C++ 中它真的没有。你只需要一个
main()否则你的程序将不是合法的 C++。 -
嗯,谢谢@AndyProwl =),对于其他人,这是我学习 c++ 的 2° 天,所以感谢反对票 =D
-
@RobertoHernandez [OT] 除了此代码的所有其他问题,您正在处理
Nodo结构中的Nombre和Curso成员 very 非常不正确。这个简单的程序可能有效,但任何包含这种链表节点的大型程序都会遇到可怕的运行时问题并崩溃,因为您实际上并未为节点中的成员分配内存。