다른 클래스의 개체에 대한 포인터를 두 개 포함하는 클래스 A가 있습니다. 다른 매개 변수를 사용하는 init()
으로 전달되는 포인터에 따라 하나의 포인터 또는 다른 포인터를 초기화하려고합니다.C에서 포인터 복사
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);
, 내 초기화는 다음과 같이 구현됩니다
void init(int parameter, int otherParameter, B* toBeInitialized) {
toBeInitialized = someConstructorFunction(parameter, otherParameter);
}
문제점은 두 포인터가 초기화되지 않았으므로 toBeInitialized가 겹쳐 쓰여졌지만 원래 매개 변수가 수정되지 않았다고 의심됩니다.
내가 잘못하고있는 것이 있습니까? 포인터에 대한 참조를 사용해야합니까?
는마소
될 것이다. –