
C++ 内置或者复合类型 成员,必须自己定义构造函数来初始化……什么样的是【内置】 【复合类型】
发布日期:2021-05-07 00:51:29
浏览次数:26
分类:精选文章
本文共 698 字,大约阅读时间需要 2 分钟。
如题,什么是内置,或者复合类型??如果是 一般的float,int,或者一个结构体的引用,是不是不初始化会出问题??
新手求解。内置类型(built-in):像int double char这种C++基本类型
复合类型(composition):一般指包含有成员数据的自定义类型.
内置类型不用手动初始化没事,C++会对他们默认初始化, 初始值可能是0(静态对象),可能是随机数(堆,栈对象) 引用类型或const的类型,不管是不是int还是结构体或者类,都必须要显式初始化. 并且编译器不会为具有这些类型的class,struct,合成.追答
一样的,复合类型是否一定要显示初始化,得看复合类型里面的成员对象,它们是否都可以默认初始化.有一个不能默认初始化(比如有引用成员),复合类型就不可以默认初始化. 否则不一定就要显式初始化.比如你的类有个string成员,你对string默认初始化也没事. 初始化包括值初始化和默认初始化.当然是将所有成员都初始化好.因为你不这么做,编译器隐式地帮你"默认初始化"掉了.内置类型(0或者随机数), 复合类型(调用默认构造) 这里有个递归的含义在class B { int c ; string str} ;class A{ int i ; B b ;} ;i 是内置类型, b 是复合类型.b能否默认初始化道理和A一样,递归进B里面.
追问
【1】也就是说 [内置类型] 成员变量在构造函数中 可以不 显式初始化。[复合类型] 成员变量必须显式初始化。&和const也是一样。【2】是不是 定义类时最好将成员全部初始化比较好?
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月05日 15时13分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我的价值观
2021-05-09
一文详解 Java 并发模型
2021-05-09
值类型与引用类型(中)
2021-05-09
MSSQL 2005 数据库变成可疑状态
2021-05-09
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2021-05-09
秋色园引发CPU百分百命案的事件分析与总结
2021-05-09
安装jdk并配置环境变量
2021-05-09
稀疏数组
2021-05-09
js的严格模式
2021-05-09
idea的安装和无限期试用
2021-05-09
Oracle VM VirtualBox安装PVE虚拟机
2021-05-09
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2021-05-09
Android MediaPlayer setDataSource failed
2021-05-09
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2021-05-09
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2021-05-09
大前端的自动化工厂(1)——Yeoman
2021-05-09
数据仓库建模方法论
2021-05-09
虚拟机搭建hadoop环境
2021-05-09
DataStax Bulk Loader教程(四)
2021-05-09