C++ 结构体如何初始化

来源:百度知道 编辑:UC知道 时间:2024/06/26 00:46:03
struct Player
{
int num;
char ch;
float fl;
};

这个结构体如何对他们的成员进行初始化值?
struct Play
{
int num;
char ch[4];
float fl;
}player2;
player2 = {30,"tom",9.46f};

void main()
{
cout<<Player2.num<<endl;
cout<<player2.fl<<endl;
cout<<player2.ch<<endl;
}

无法使用呢?

有以下几种方法:
1 使用构造函数。
在C++中,struct可以当做类(class)来使用,同样支持成员函数,构造函数,析构函数。所以可以写对应的构造函数,实现自由初始化。

2 定义时,按照成员变量位置,写初始化列表。
如struct test中有成员int a, char b, 和float c,那么初始化一个变量可以写作
struct test t1 = {100, 'A', 1.23};
当初始化列表不全时,省略部分自动初始化为0,即
struct test t1 = {100, 'A'};

struct test t1 = {100, 'A', 0};
等效。

3 部分编译器支持显示成员变量初始化,如g++。

struct test t1 = {.b= 'A', .a=100};
没有涉及到的变量初始化为0.该种方式不是所有编译器都支持,当代码有跨平台需求时需谨慎使用。

可以直接在定义后面赋值,例如:
struct Player
{
int num;
char ch;
float fl;
}Player1={20,"peter",6.24};
------------------------------
也可以先定义,再赋值,如:
struct Player
{
int num;
char ch;
float fl;
}player1,player2;
player1={20,"peter",6.24};
player2={30,"tom",9.46};

直接复制,或者加构造函数

1.
struct Player
{
int num;
char ch;
float fl;
}Jay={