我不知道我是否设法描述了标题中的意思,但说我们有一个像这样的数据类:
class Data
{
public:
Data(int i) : m_data(i) {} // Must always be initialized with a value
int m_data;
};
像这样的 Main 类:
class Main
{
public:
Main() :
m_data(Set(&m_data)) // Is it ok to use the pointer of m_data like this?
{
}
private:
int Set(Data* pData)
{
m_pData = pData;
return 10;
}
Data* m_pData;
Data m_data; //Must be initialized in the initializer list of the constructor
};
我的问题是:
在实际初始化 m_data 之前,我可以安全地将 &m_data 作为指向 Set 函数的指针吗?(假设指针未在 Set 函数中使用,仅存储)
即;&m_data 指针在 m_data 本身初始化之前是否有效?