全局结构体变量包含类的问题及如何转换为全局类使用
typedef struct
{
int a;
String str_a;
}Config_AA;
typedef struct
{
int b;
String str_b;
}Config_BB;
typedef struct
{
int c;
String str_c;
}Config_CC;
typedef struct
{
Config_AA m_AA;
Config_BB m_BB;
Config_CC m_CC;
}Config;
Config m_Config;
{
int a;
String str_a;
}Config_AA;
typedef struct
{
int b;
String str_b;
}Config_BB;
typedef struct
{
int c;
String str_c;
}Config_CC;
typedef struct
{
Config_AA m_AA;
Config_BB m_BB;
Config_CC m_CC;
}Config;
Config m_Config;
定义一个全局变量Config m_Config;其中包含类string。
如果变成
typedef struct
{
union{
Config_AA m_AA;
Config_BB m_BB;
Config_CC m_CC;
}m_data;
}Config;
{
union{
Config_AA m_AA;
Config_BB m_BB;
Config_CC m_CC;
}m_data;
}Config;
会因为union包含了string构造函数,导致union无法初始化内存而报错。
那么为什么使用结构体就不会报错,使用malloc(mun*sizeof(m_Config));的时候分配了多大的空间?
如果包含有类的绝结构体不能使用malloc分配空间,应该怎么分配空间初始化?
如何把c语言习惯上的全局变量嵌套形式的结构体使用C++的全局类的形式表示?