C++结构体内部初始化

我都知道,c语言中结构体内部是不支持初始化的。如果要初始化结构体,可以在声明变量时进行初始化。例如:

1
2
3
4
5
6
struct Test{  
int a;
char b;
double c;
};
Test test_1 = { 1, 'a', 0 };

然而c++中结构体内部在声明变量的同时可以声明函数,这为结构体内部初始化提供了很大的便利。

因此上面用例可以写成:

1
2
3
4
5
6
7
8
9
10
struct Test{  
int a;
char b;
double c;
Test(){
a = 1;
b = 'a';
c = 0;
}
};

这为定义结构体时关于初始化问题提供了很大的便利。

以下是代码及运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>  
using namespace std;
struct Test {
int a;
char b;
double c;
Test() {
a = 1;
b = 'a';
c = 0;
}
}Text_1;
int main() {
cout << Text_1.a << endl << Text_1.b << endl << Text_1.c;
return 0;
}

img


文章结束了,但我们的故事还在继续
坚持原创技术分享,您的支持将鼓励我继续创作!