关于C++中结构体初始化小结
来源:互联网 发布:世界网络强国有哪些 编辑:程序博客网 时间:2024/04/28 09:55
C++中的结构体与C中结构体不同,C++中结构体与类已经没有什么大的区别了
C++中结构体的初始化分为三种:
类化结构体:
#include <iostream>using namespace std;struct Point{ int x, y; Point(int x1 = 0, int y1 = 0) { x = x1, y = y1; }};int main() { Point s;//定义对象后自动调用构造函数 cout << s.x << endl << s.y << endl; return 0;}
输出如下:
如果需要传参数,则只需在定义对象时加上 参数即可
#include <iostream>using namespace std;struct Point{ int x, y; Point(int x1 = 0, int y1 = 0) { x = x1, y = y1; }};int main() { int a = 1, b = 2;//a,b也可由键盘输入 Point s(a,b); cout << s.x << endl << s.y << endl; return 0;}
输出如下:
不过我们定义的结构体一般成员比较多,此时如果用以上方法显得麻烦,我们可以这样:
#include <iostream>using namespace std;struct Point{ int x, y;};int main() { Point s = {};//或Point s = {0} cout << s.x << endl << s.y << endl; return 0;}
输出如下:
这用方法类似于数组的初始化,也是C中结构体的初始化方法,但在C++中,我们还可以这样:
#include <iostream>using namespace std;struct Point{ int x, y; Point() { memset(this, 0, sizeof(Point)); }};int main() { Point s; cout << s.x << endl << s.y << endl; return 0;}
输出如下:
虽然方便,但不能初始化为自己设定的值,要想初始化为自己设定的值只能在构造函数中自己一个一个的写,没得懒偷= =
0 0
- 关于C++中结构体初始化小结
- Linux C中结构体初始化
- Linux C中结构体初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- C语言中结构体的初始化
- 关于结构体初始化
- 关于c中结构体
- c 结构体初始化
- c结构体初始化
- c 结构体初始化
- C结构体初始化
- C 结构体小结
- 关于linux内核中结构体初始化的新写法
- jsoncpp和rapidjson哪个好用?
- Hihocoder第九十八周 搜索一·24点
- 使用WinINet和WinHTTP实现Http访问
- 登封造极之树——树链剖分
- mysql 默认八小时空闲自动断开连接
- 关于C++中结构体初始化小结
- Mybatis中配置Mapper的方法
- Oracle存储过程拼接in语句 & 自定义split函数
- 简单错误记录
- 1003
- 近期需要学习的知识点
- Database之增删改查工具类(简单版)
- 通过sql替换mysql 表某字段中的部分内容,
- Activity与Fragment易混点归纳