代码不具备可用性,只是用来测试
#include <iostream> using namespace std; class myclass{ public: myclass(){}; ~myclass(){}; }; void fun1(myclass* ptr){ cout<<"调用fun1"<<endl; cout<<(myclass*)ptr<<endl; ptr = (myclass*)malloc(sizeof myclass); cout<<(myclass*)ptr<<endl; } void fun2(myclass** ptr){ cout<<"调用fun2"<<endl; cout<<(myclass*)*ptr<<endl; *ptr = (myclass*)malloc(sizeof myclass); cout<<(myclass*)*ptr<<endl; } void fun3(myclass*& ptr){ cout<<"调用fun3"<<endl; cout<<(myclass*)ptr<<endl; ptr = (myclass*)malloc(sizeof myclass); cout<<(myclass*)ptr<<endl; } void main(){ myclass* p1 = new myclass; myclass* p2 = new myclass();//这两个什么区别我就不知道了 fun1(p1); cout<<(myclass*)p1<<endl;//p1值没变 fun1(p2); cout<<(myclass*)p2<<endl;//p2值也没变 fun2(&p1); cout<<(myclass*)p1<<endl; fun2(&p2); cout<<(myclass*)p2<<endl; fun3(p1); cout<<(myclass*)p1<<endl; fun3(p2); cout<<(myclass*)p2<<endl; system("pause"); }