直接上代码:
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 **)
的函数。