我在头文件中定义了一个结构体。然后我有一个单身类,我试图使用该结构。当我从另一个类中调用ResetVars()时,当它碰到test.numResponses =“TEST”行时,我得到一个访问冲突。我认为这与初始化有关,但我一直无法解决它。我是新来的C++,我不知道如何解决这个问题。谢谢你的帮助。写入到typdef时出现C++访问冲突struct
struct.h
typedef struct POLL_DATA
{
std::string numResponses;
std::string type;
std::string question;
} POLL_DATA;
ControlPolls.h
class ControlPolls
{
private:
static bool instanceFlag;
static ControlExitPolls *controlSingle;
ControlExitPolls();
POLL_DATA test;
public:
static ControlExitPolls* getInstance();
void ResetVars();
};
ControlPolls.cpp
#include "ControlPolls.h"
bool ControlPolls::instanceFlag = false;
ControlPolls* ControlPolls::controlSingle = NULL;
//Private Constructor
ControlExitPolls::ControlExitPolls()
{
};
//Get instance
ControlPolls* ControlPolls::getInstance()
{
if(!instanceFlag)
{
controlSingle = &ControlPolls();
instanceFlag = true;
return controlSingle;
}
else
{
return controlSingle;
}
}
void ControlExitPolls::ResetVars()
{
test.numResponses = "TEST";
}
callingClass.cpp
ControlPolls *controlSingleton;
controlSingleton = ControlPolls::getInstance();
controlSingleton->getInstance()->ResetVars();
请编辑您的问题包含一个[MCVE] – Slava
为什么你需要'的typedef struct'在C++摆在首位? – Slava
class A.h include struct.h – baruti