在过去的一两年中,我一直在使用C#/。NET,但是正在为客户端更新旧的C ++ / MFC应用程序。自上次使用C ++以来,我知道已经发生了很多变化,但是这种想法让我感到震惊。
我具有以下结构:
typedef struct _FILTERINFO {
int nCustomerID;
CString sCustomerName;
} FILTERINFO, *LPFILTERINFO;
Visual Studio 2019给我警告:
警告C26495变量'_FILTERINFO :: nCustomerID'未初始化。始终初始化成员变量(类型6)。
那么,这是什么问题,我将如何初始化变量?如您所见,我没有构造函数。我现在不需要结构了吗?
注意:进一步研究,我发现我的应用程序定义了其他struct
,由于某种原因,它没有得到同样的警告。似乎特定于大约两个或三个声明。
答案 0 :(得分:1)
删除typedef,您正在使用c ++,所以写
struct FILTERINFO
{
int nCustomerID=0;
CString sCustomerName;
};
和
typedef FILTERINFO* LPFILTERINFO;
如果您仍然需要指针,尽管我个人不喜欢它,我还是喜欢写FILTERINFO*