uninit_member:非静态类成员m_wszParams未在此构造函数中初始化,也不在它C++中调用的任何函数中初

uninit_member: Non-static class member m_wszParams is not initialized in this constructor nor in any functions that it calls in C++

本文关键字:调用 函数 任何 初始化 C++ 构造函数 静态类 member 成员 wszParams uninit      更新时间:2023-10-16

我有IVerization类,这个类有两个成员变量(m_wszParams和m_wszParamType(。在此类构造函数中,我不初始化这些成员变量。稍后,在派生类(MyReader(中初始化这些变量。

因此,我收到警告"uninit_member:非静态类成员m_wszParams未在此构造函数中初始化,也未在其调用的任何函数中初始化。

要解决此警告,我可以在 IVerification 构造函数中使用 nullptr 初始化这些成员变量,如下所示吗?

IVerification::IVerification()
{
m_wszParams = nullptr;
m_wszParamType = nullptr;
}

以下是完整的代码:

.h 文件

class IVerification
{
public:
IVerification();
virtual ~IVerification(); 
protected:
wchar_t* m_wszParams;
wchar_t* m_wszParamType;
}

.cpp文件

IVerification::IVerification()
{
}

下面是派生类

我的阅读器.h 文件

class MyReader : public IVerification
{
public:
MyReader();
~MyReader();
public:
void SetParams(wchar_t* wszParams, wchar_t* wszParamType);
}

我的阅读器.cpp文件

void MyReader::SetParams(wchar_t* wszParams, wchar_t* wszParamType)
{
m_wszParamType = wszParamType;
m_wszParams = wszParams;
}

至少

第四类 { 公共: IVerization((= 默认值; 虚拟 ~IVerization((= 默认值; 保护: wchar_t* m_wszParams= 空点;wchar_t* m_wszParamType= 空点;};

下一步:指针不是你的朋友,使用std::string。