直接上代码:
class Test
{
public:
Test() {}
private:
int a;
};
void fun(Test *tt)
{
tt = new Test();
std::cout << tt << std::endl;
return;
}
void fun(Test **tt)
{
*tt = new Test();
std::cout << *tt << std::endl;
return;
}
int main()
{
Test *t = nullptr;
//fun(t);
fun(&t);
if (t == nullptr) {
std::cout << "t is nullptr" << std::endl;
}
else {
std::cout << t << std::endl;
}
return 0;
}
如果我们想在一个函数中new一个对象,给外面的指针,可以定义形如fun(T **)
的函数。