Visual Studio 2019正在引发有关具有没有默认值的变量的结构的警告
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio 2019正在引发有关具有没有默认值的变量的结构的警告相关的知识,希望对你有一定的参考价值。
采用这种结构定义:
typedef struct tagReferenceMWB
{
COleDateTime datStartDate;
COleDateTime datEndDate;
COleDateTime datFirstMonday;
COleDateTime datLastMonday;
CString strFileMWB;
WORD wCount;
bool bReferenced;
bool bModified;
} S_REFERENCE_MWB;
VS2019中的编译器发出警告:
Warning C26495 Variable 'CChristianLifeMinistryDefines::tagReferenceMWB::bModified' is uninitialized. Always initialize a member variable (type.6). Meeting Schedule Assistant d:my programs2019meetschedassistmeeting schedule assistantchristianlifeministrydefines.h 348 Warning C26495 Variable 'CChristianLifeMinistryDefines::tagReferenceMWB::bReferenced' is uninitialized. Always initialize a member variable (type.6). Meeting Schedule Assistant d:my programs2019meetschedassistmeeting schedule assistantchristianlifeministrydefines.h 348 Warning C26495 Variable 'CChristianLifeMinistryDefines::tagReferenceMWB::wCount' is uninitialized. Always initialize a member variable (type.6). Meeting Schedule Assistant d:my programs2019meetschedassistmeeting schedule assistantchristianlifeministrydefines.h 348
由于我们无法在结构定义中分配默认值,我们如何解决问题?
Update
根据提供的答案中的注释,我检查了我的项目设置:
我的项目在十多年前开始生效,这个设置似乎是空的。我不知道这个留空的意义是什么?这些是我的选择:
将值更改为C ++ 14或C ++ 17会产生什么重大影响? IE浏览器。它会影响它可以运行的操作系统吗?
答案
在C ++中,struct
与class
相同(默认访问修饰符除外)。您可以通过提供默认构造函数来指定默认值。如果您使用的是C ++ 11,则还可以为非静态非const类成员使用类内初始值设定项,例如:
typedef struct tagReferenceMWB
{
// ...
WORD wCount{ 0 };
bool bReferenced{ false };
bool bModified{ false };
} S_REFERENCE_MWB;
要么
typedef struct tagReferenceMWB
{
// ...
WORD wCount{};
bool bReferenced{};
bool bModified{};
} S_REFERENCE_MWB;
以上是关于Visual Studio 2019正在引发有关具有没有默认值的变量的结构的警告的主要内容,如果未能解决你的问题,请参考以下文章
当我们在 Visual Studio 2019 中创建 dacpac 文件时,Azure 数据仓库物化视图出现问题
visual studio 2012 启动出现如下错误,怎么处理
在 Visual Studio 2010 和 Visual Studio 2012 中,带有 col、colgroup、tbody 和 thead 的 HTML 表格标记引发编译错误