在结构上警告C26495?

时间:2019-04-13 16:50:34

标签: c++ visual-studio

在过去的一两年中,我一直在使用C#/。NET,但是正在为客户端更新旧的C ++ / MFC应用程序。自上次使用C ++以来,我知道已经发生了很多变化,但是这种想法让我感到震惊。

我具有以下结构:

typedef struct _FILTERINFO {
    int nCustomerID;
    CString sCustomerName;
} FILTERINFO, *LPFILTERINFO;

Visual Studio 2019给我警告:

  

警告C26495变量'_FILTERINFO :: nCustomerID'未初始化。始终初始化成员变量(类型6)。

那么,这是什么问题,我将如何初始化变量?如您所见,我没有构造函数。我现在不需要结构了吗?

注意:进一步研究,我发现我的应用程序定义了其他struct,由于某种原因,它没有得到同样的警告。似乎特定于大约两个或三个声明。

1 个答案:

答案 0 :(得分:1)

删除typedef,您正在使用c ++,所以写

struct FILTERINFO 
{ 
  int nCustomerID=0; 
  CString sCustomerName; 
};

typedef FILTERINFO* LPFILTERINFO; 

如果您仍然需要指针,尽管我个人不喜欢它,我还是喜欢写FILTERINFO*