编辑:我已经在固定的意外参数错字func2()是MyClass*不是MyClass.
我有一个这样的课:
#include "MyClass.h"
class X{
public:
X();
MyClass* m;
func1();
func2(MyClass* m, int x);
private:
}
Run Code Online (Sandbox Code Playgroud)
资源:
#include "X.h"
X::X{
m = null_ptr;
}
X::func1(){
//Pass the un-initialized data member m here...
func2(m, 6);
//When I get to this point m has not been assigned, even though it was passed as a pointer to func2()
}
X::func2(MyClass* old_obj, int x){
//Please forgive the memory management for a second....
MyClass* new_obj = new MyClass(x);
//This should initialise the data member m??????
old_obj = new_obj ;
}
Run Code Online (Sandbox Code Playgroud)
然而它不起作用 - 我在这里做出一个基本的错失假设吗?我以为这会起作用....
要修改函数参数的指针,您需要修改原始指针而不是它的副本.
func2(MyClass*& m, int x);
// ^
Run Code Online (Sandbox Code Playgroud)