【发布时间】:2010-03-18 10:29:27
【问题描述】:
我有一个 A 类,其中包含两个指向另一个 B 类的对象的指针。我想根据传递给init() 的指针来初始化一个或另一个指针,它还接受其他参数。因此,我的情况如下:
class A {
public:
A();
init(int parameter, int otherParameter, B* toBeInitialized);
protected:
B* myB;
B* myOtherB;
};
现在我的意思是我想将init() 称为:
init(640, 480, this->myB);
或
init(640, 480, this->myOtherB);
现在,我的 init 实现为:
void init( int parameter, int otherParameter, B* toBeInitialized ) {
toBeInitialized = someConstructorFunction(parameter, otherParameter);
}
问题是两个指针没有初始化,我怀疑是toBeInitialized被覆盖了,但是原来的参数没有修改。
我做错了什么? 我应该使用对指针的引用吗?
谢谢
托马索
【问题讨论】:
-
这是一个非常可怕的设计。
标签: c++ pointers parameters copy initialization