C++ 变量初始化

news/2025/1/15 20:43:44/文章来源:https://www.cnblogs.com/huvjie/p/18409738

列表初始化

当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错:

long double ld=3.1415926536;int a{ld},b={ld}; //错误:转换未执行,因为存在丢失信息的危险
int c(ld),d= ld;  //正确:转换执行,且确实丢失了部分值

使用 long double 的值初始化 int 变量时可能丢失数据,所以编译器拒绝了a和b的初始化请求。其中,至少 ld 的小数部分会丢失掉,而且 int 也可能存不下 ld 的整数部分。

默认初始化

如果是内置类型的变量未被显式初始化,它的值由定义的位置决定。定义于任何函数体之外的变量被初始化为 0。然而如 6.1.1节(第185 页)所示,一种例外情况是,定义在函数体内部的内置类型变量将不被初始化(uninitialized)。一个未被初始化的内置类型变量的值是未定义的(参见 2.1.2节,第 33 页),如果试图拷贝或以其他形式访问此类值将引发错误

每个类各自决定其初始化对象的方式。而且,是否允许不经初始化就定义对象也由类自己决定。如果类允许这种行为,它将决定对象的初始值到底是什么。绝大多数类都支持无须显式初始化而定义对象,这样的类提供了一个合适的默认值。

例如,以刚刚所见为例,string类规定如果没有指定初值则生成一个空串:

std::string empty; //empty非显式地初始化为一个空串
Sales item item; //被默认初始化的 Sales item 对象

一些类要求每个对象都显式初始化,此时如果创建了一个该类的对象而未对其做明确的初始化操作,将引发错误。




《C++ Primer》 P40

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/795928.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PbootCMS后台访问地址及默认帐号密码是多少

PBootCMS 的后台默认账号和密码通常会在官方文档或开发手册中给出。如果你在源码包中没有找到相关信息,可以参考以下默认设置: 默认后台访问路径后台访问路径:http(s)://yourdomain.com/admin.php将yourdomain.com替换为你的实际域名。默认账号和密码初始账号:admin 初始密…

pbootcms升级提示 执行SQL发生错误!错误:duplicate column name: picstitle

当你在升级PBootCMS时遇到“执行SQL发生错误!错误:duplicate column name: picstitle”的问题,这通常表示在升级过程中,数据库表结构的变更脚本未能正确执行,导致新的字段名称与现有字段冲突。以下是如何解决这个问题的一些步骤: 解决方案备份数据库:在进行任何数据库操…

pbootcms伪静态设置教程含apache、naginx、IIS不同环境配置规则

其实pbootcms伪静态已经整理好, 在根目录就可以找到 作为使用者, 只需要根据不同的服务器环境, 使用不同格式的数据就行。 naginx #请复制下面伪静态配置到nginx配置文件中: #规则适合PbootCMS V2.0+版本location / {if (!-e $request_filename){rewrite ^/(.*)$ /index.ph…

van-checkbox + dialog

<van-dialogv-model="showParkingLot"title="选择"show-cancel-buttoncancelButtonText="取消"confirmButtonColor="#2e7cf9"@confirm="confirm"><div class="p10"><van-checkbox-groupv-model=&q…

腾讯云升级多个云存储解决方案 以智能化存储助力企业增长

9月6日,在腾讯数字生态大会腾讯云储存专场上,腾讯云升级多个存储解决方案:Data Platform 数据平台解决方案重磅发布,数据加速器 GooseFS、数据处理平台数据万象、日志服务 CLS、高性能并行文件存储 CFS Turbo 等多产品全新升级,能够为企业在 AI 时代提供更安全、高效的数据…

PbootCMS详情页里上一篇下一篇的“没有了”在哪里改啊

扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。专业解决各种疑难杂症,您有任何网站问题都…

怎么修改PbootCms的邮件提醒标题

解决这个问题简单又复杂,首先你需要有网站源码的管理权限。 再去检索 PbootCMS,对搜索结果中的文件进行处理下就可以了。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、…

Redis集群slot迁移改造实践

Redis集群经常需要进行在线水平扩缩容,实际操作过程中发现迁移期间服务时延剧烈抖动,业务侧感知明显,为了应对以上问题对原生Redis集群slot迁移功能进行优化改造。作者:来自 vivo 互联网存储团队- Xu XingbaoRedis 集群经常需要进行在线水平扩缩容,实际操作过程中发现迁移…

pbootcms如何设置发布内容不自动提取缩略图

如果你想在PBootCMS后台发布内容时不自动提取缩略图,可以通过注释或删除相关代码来实现这一功能。以下是具体的步骤和代码示例: 步骤找到相关代码:在PBootCMS的代码中找到自动提取缩略图的逻辑。 通常这部分代码位于content.php或相关的内容处理文件中。注释或删除代码:注释…

pbootcms模板报错提示PHP Warning: Unknown: open_basedir restriction

当PBootCMS模板出现类似“PHP Warning: Unknown: open_basedir restriction ineffect. File”的错误提示时,通常是因为PHP的open_basedir限制设置不当或版本不兼容导致的。以下是如何解决这个问题的具体步骤: 问题分析open_basedir限制:open_basedir是一个PHP的安全设置,用…

分库分表零基础

一、前言 中大型项目中,一旦遇到数据量比较大,就应该对数据进行拆分。有垂直和水平两种 。 垂直拆分也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。 水平拆分,是同一个业务数据量大之后,进行水平拆分。 mysql单表存储量推荐是百万级,如果不进行处理,…

PbootCms内页打不开的常见情况汇总

当遇到PBootCMS内页无法正常访问的情况时,特别是当点击任何链接都跳转到首页或内页访问报错时,通常与伪静态配置有关。以下是最简单粗暴的方案——关闭伪静态,使用兼容模式的操作步骤: 1. 关闭伪静态 步骤 1: 修改全局设置登录PBootCMS后台。 导航到“全局设置”。 找到“U…