各位 C/C++ 代码编程专家,大家好。
我偶然发现了这段代码,但我很困惑这两个函数返回的是什么。
有好心人可以帮助我吗?
我尝试使代码尽可能通用且对其他人有用。
ClassA*& func1() {
static ClassA* mClassA;
return mClassA;
}
ClassA* func2() {
ClassA*& mClassA = func1();
if(!mClassA) {
... // omitted some code that fill mClassA with data.
}
return mClassA;
}
[edit]还想问一下,func1()和func2()中的*&会互相抵消吗?
最佳答案
ClassA*& func1()
返回通过引用在方法内部声明的静态指针。正在做:
ClassA*& x = func1()
x = NULL
会改变mClassA
。
ClassA* func2()
返回指针的拷贝。它将指向相同的内存,但更改指针不会影响 mClassA
。
关于c++ - 这些 C++ 函数返回什么? ClassA*& func1(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315405/