class Example
{
private:
Example* pointer;
Example* pointer2;
public:
Example();
void setPointer2(Example* object);
};
Example::Example()
{
pointer = new Example();
}
void Example::setPointer2(Example* object)
{
this->pointer2 = object;
}
int main()
{
Example object;
object.setPointer2(new Example());
return 0;
}
삭제는 중요하지 않습니다. 나는 포인터와 pointer2로 잡고있는 주소 인이 두 개체의 차이점을 알고 싶습니다. 그들은 다르게 할당됩니까? 실제 질문은 "new"연산자를 어디에 사용하는 것이 중요합니까?
코드에서 가장 큰 문제는 무한 재귀입니다 ! 정의한 생성자 :
Example::Example()
{
pointer = new Example();
}
고유 한 유형의 새 개체를 만듭니다. 이것은 생성자를 (다시) 호출하고 그 호출은 생성자를 (계속해서 ...)
그러나 그 문제를 제외하고는 new
주소를 직접 할당 하여 객체 를 생성하는지 pointer
또는 다른 곳에 객체를 생성 한 다음 주소를 (나중에)에 할당 하는지 여부는 실제로 중요하지 않습니다 pointer2
. 둘 다 클래스의 객체를 가리 킵니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다