gpt4 book ai didi

c++ - 使用指向初始化列表中未初始化成员的指针

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:52 24 4
gpt4 key购买 nike

我不知道我是否设法描述了我在标题中的意思,但说我们有一个像这样的数据类:

class Data
{
public:
Data(int i) : m_data(i) {} // Must always be initialized with a value
int m_data;
};

还有一个像这样的主类:

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 函数中使用,仅存储)
IE;在 m_data 本身被初始化之前 &m_data 指针是否有效?

最佳答案

Can I safely give &m_data as pointer to the Set function before actually initializing m_data?

当然,您可以这样做:在内存至少被写入一次之前从指针读取是非法的,但指针本身可以安全存储。

关于c++ - 使用指向初始化列表中未初始化成员的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19864080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com