C++ C++;指向在另一个结构内部的结构中定义的变量(由用户填充)
我在写清单。我想执行在另一个结构中的结构中定义的变量插入(用户端) 我的部分代码如下:C++ C++;指向在另一个结构内部的结构中定义的变量(由用户填充),c++,struct,C++,Struct,我在写清单。我想执行在另一个结构中的结构中定义的变量插入(用户端) 我的部分代码如下: #include <iostream> #include <string> using namespace std; // Global variables struct gioco {string piattaforma; string titolo; string genere; strin
#include <iostream>
#include <string>
using namespace std;
// Global variables
struct gioco {string piattaforma;
string titolo;
string genere;
string sviluppatore;
string publisher;
struct data {int giorno;
int mese; // Formato data GG/MM/AAAA
int anno; };
bool disponibile;
gioco * recordSuccessivo; };
// Prototypes
bool stampaLista (gioco *);
gioco * aggiungiGioco (gioco *);
// MAIN Function
int main (void)
{// Local Variables (MAIN)
char sceltaMenu = '\0';
gioco * puntatoreTesta = NULL;
gioco * puntatoreCoda = NULL;
gioco * puntatoreDeposito = NULL;
// [more code]
stampaLista (puntatoreTesta);
// [more code + ASCII menu]
cin>>sceltaMenu;
switch (sceltaMenu)
{case '1':
puntatoreDeposito = aggiungiGioco (puntatoreTesta);
break;
// [more cases + default]
}
return 0;
}
// Other Functions
bool stampaLista (gioco * puntatoreTesta)
{cout<<endl<<"PIATTAFORMA"<<"\t"<<"TITOLO"<<"\t"<<"GENERE"<<"\t"<<"SVILUPPATORE"<<"\t"<<"PUBLISHER"<<"\t"<<"DATA DI USCITA"<<"\t"<<"DISPONIBILE"<<endl<<endl;
if (puntatoreTesta != NULL)
{gioco * puntatoreDeposito = NULL;
puntatoreDeposito = puntatoreTesta;
do {cout<<puntatoreDeposito -> piattaforma<<"\t"
<<puntatoreDeposito -> titolo<<"\t"
<<puntatoreDeposito -> genere<<"\t"
<<puntatoreDeposito -> sviluppatore<<"\t"
<<puntatoreDeposito -> publisher<<"\t"
<<puntatoreDeposito -> gioco.data.giorno<<"/"<<puntatoreDeposito -> gioco.data.mese<<"/"<<puntatoreDeposito -> gioco.data.anno<<"\t"
<<puntatoreDeposito -> disponibile<<endl;
puntatoreDeposito++;
} while (puntatoreDeposito != NULL);
return false;
}
else
{cout<<"La lista e' vuota!"<<endl<<endl<<endl;
return true;
}
}
gioco * aggiungiGioco (gioco * puntatoreTesta)
{// Local Variables
gioco * puntatoreNuovo = new gioco;
puntatoreNuovo -> recordSuccessivo = NULL;
cout<<"NUOVO RECORD"<<endl<<endl;
cout<<"Piattaforma:"<<"\t";
cin>>puntatoreNuovo -> piattaforma;
cout<<"Titolo:"<<"\t";
cin>>puntatoreNuovo -> titolo;
cout<<"Genere:"<<"\t";
cin>>puntatoreNuovo -> genere;
cout<<"Sviluppatore:"<<"\t";
cin>>puntatoreNuovo -> sviluppatore;
cout<<"Publisher:"<<"\t";
cin>>puntatoreNuovo -> publisher;
cout<<"Data di Uscita:"<<endl;
cin>>puntatoreNuovo -> gioco.data.giorno>>puntatoreNuovo -> gioco.data.mese>>puntatoreNuovo -> gioco.data.anno;
return puntatoreNuovo;
}
#包括
#包括
使用名称空间std;
//全局变量
结构gioco{字符串piattaforma;
弦提托罗;
字符串生成;
字符串sviluppatore;
字符串发布器;
结构数据{int giorno;
int-mese;//格式数据GG/MM/AAAA
int anno;};
布尔争议;
gioco*RecordSequessivo;};
//原型
布尔·斯坦帕利斯塔(gioco*);
gioco*Aggiungioco(gioco*);
//主要功能
内部主(空)
{//局部变量(主)
char sceltaMenu='\0';
gioco*puntatoreTesta=NULL;
gioco*puntatoreCoda=NULL;
gioco*puntatoreDeposito=NULL;
//[更多代码]
stampaLista(Puntatoresta);
//[更多代码+ASCII菜单]
中国>>斯凯尔塔梅努;
开关(sceltaMenu)
{案例“1”:
Puntatoreposito=Aggiungioco(Puntatoresta);
打破
//[更多案例+默认]
}
返回0;
}
//其他职能
布尔·斯坦帕利斯塔(gioco*Puntatoresta)
{cout您需要以以下方式定义结构:
// Global variables
struct gioco {string piattaforma;
string titolo;
string genere;
string sviluppatore;
string publisher;
struct data {int giorno;
int mese; // Formato data GG/MM/AAAA
int anno; } data_field;
bool disponibile;
gioco * recordSuccessivo; };
然后您可以访问它:
gioco* puntatoreNuovo = new gioco;
puntatoreNuovo->recordSuccessivo = NULL;
......
cout<<"Data di Uscita:"<<endl;
cin>>puntatoreNuovo->data_field.giorno >> puntatoreNuovo->data_field.mese >> puntatoreNuovo->data_field.anno;
......
gioco*puntatoreNuovo=新gioco;
puntatorenuvo->recordSuccessivo=NULL;
......
cout>puntatoreNuovo->data_field.mese>>puntatoreNuovo->data_field.anno;
......
您在结构中定义了一个结构,但没有为该结构指定一个可变名称。这类似于在主结构中写入int;
。struct data
只是一个类型。gioco
和data
不是结构名称吗?它们是结构名称,或者您可以调用它们types
。您永远不会访问它们gico
字段通过编写gico.field\u name
,您可以定义一个类型为gico
的变量:gico var;
,然后通过var.field\u name
访问var.field\u name
的字段。struct data
也应该如此。非常感谢您向我解释:)没问题!不客气!我不必客气即使使用struct gioco
,我们也必须这样做,因为我们谈论的是嵌套结构,比如struct gioco{/*…*/}gioco_field
通过gioco_field.data_field.giorno
/.mese
/.anno
访问它们?是的。完全正确。定义内部结构没有意义,因为除了gico
结构之外,没有人可以访问它。@LorenzoMaffii我正在添加一个更正。定义内部结构的意义在于使它只对用户可见<代码> GIKO/CODE>,这种方法只用于C++封装。但是由于使用的结构更像C结构而不是C++,所以没有真正的理由。@ LoReZoMaFiS.No。您只需使用它作为容器来存储相关的属性。没有构造函数、diStruts和不同的方法。