gpt4 book ai didi

c++ - 指向引用的指针和指向实际变量的指针可以被视为相同吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:02 24 4
gpt4 key购买 nike

我最近在我的代码库中看到了下面的代码(下面给出了简化版本)并且产生了这样的疑问:

class B;
class A
{
public:
A():m_A("testA"){}
B& getB()
{
return m_B;
}
B* getBPtr() //== > written to explain the problem clearly
{
return &m_B;
}
private:
B m_B;
};

class B
{
public:
B(const std::string& name):m_Name(name){}
std::string getName() const
{
return m_Name;
}
private:
std::string m_Name;
};

class C
{
public:
void testFunc(B* ptr)
{
}
};


int main()
{
A a;
C c;
c.testFunc(&a.getB()); ===> is it equivalent to c.testFunc(a.getBPtr()) ?
}
  1. 指向引用的指针和指向实际变量的指针可以被视为相同吗?
  2. 标准是否对可互换用于变量地址的引用地址有任何说明。

最佳答案

标准8.3.2/4第一句:

There shall be no references to references, no arrays of references, and no pointers to references

(我的重点)

这并不意味着您不能获取声明为引用的变量的地址,它只是意味着没有单独的类型用于指向引用的指针。

关于c++ - 指向引用的指针和指向实际变量的指针可以被视为相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027122/

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