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

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++ Language

我的项目在十多年前开始生效,这个设置似乎是空的。我不知道这个留空的意义是什么?这些是我的选择:

C++ Language Options

将值更改为C ++ 14或C ++ 17会产生什么重大影响? IE浏览器。它会影响它可以运行的操作系统吗?

答案

在C ++中,structclass相同(默认访问修饰符除外)。您可以通过提供默认构造函数来指定默认值。如果您使用的是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 的优点,请高手详细解答

Visual Studio 2017详细资料大全

当我们在 Visual Studio 2019 中创建 dacpac 文件时,Azure 数据仓库物化视图出现问题

s-s-rS Visual Studio 2015 限制

visual studio 2012 启动出现如下错误,怎么处理

在 Visual Studio 2010 和 Visual Studio 2012 中,带有 col、colgroup、tbody 和 thead 的 HTML 表格标记引发编译错误