class Cbase
{
public :
virtual ~Cbase(){};
int k;
};
class Cchild: public Cbase
{
public :
~Cchild(){};
double *p;
int f;
};
두 개의 클래스가 있습니다. 차세대 인스턴스( base - child - child2 - ...)가 메모리에서 점점 더 많은 공간을 차지한다고 생각합니다. New 연산자에게 우리는 매개변수에 클래스를 전달하여 할당할 메모리의 양을 정확히 알려줍니다. 그러나 삭제 연산자 에서 우리는 삭제할 양에 대해 아무 말도 하지 않습니다. 이러한 반성을 바탕으로 다음 상황에서 어떤 일이 일어날지 완전히 명확하지 않습니다.
저것들. 내 말은, 우리는 *pClass를 Cbase(Cchild에 비해 작은 클래스)에 대한 포인터로 선언했지만 실제로는 Cchild를 가리킵니다. 여기에서 질문은 delete()가 어떻게 작동합니까? Cbase 의 크기와 동일한 바이트 수를 해제할 것인가(메모리가 막힐 것인가), 아니면 삭제가 올바르게 일어날 것인가?
추신: 글쎄, 주제에 대한 한 가지 질문에 대해: 할당된 메모리 영역(신규)에 이 영역의 크기를 이해할 수 있는 일종의 레이블이 있습니까? 끝)? 다시 말해, 내가 올바르게 선언한 클래스의 크기에 대해 아무것도 모르는 코드가 메모리를 해제할 수 있습니까?
문제... 신호 모듈을 부착하십시오(저는 없습니다). 우리는 볼 것이다.
더 이상합니다. 나는 효과를 얻지 못한다.
초기화 중에만 효과가 있으며 테스터에서는 모든 것이 정상입니다.
좋아, 고를 필요 없어, 난 별로 필요 없어
지그재그 표시기에서 더 이상 존재하지 않는 값을 읽습니다(아마 다시 그리기 전에 있었던 것 같습니다).이를 피할 수 있습니까?
버퍼에 값이 있으면 다시 그리지 않는 이유는 ...
안녕하세요, 다음을 설명해 주십시오.
두 개의 클래스가 있습니다. 차세대 인스턴스( base - child - child2 - ...)가 메모리에서 점점 더 많은 공간을 차지한다고 생각합니다. New 연산자에게 우리는 매개변수에 클래스를 전달하여 할당할 메모리의 양을 정확히 알려줍니다. 그러나 삭제 연산자 에서 우리는 삭제할 양에 대해 아무 말도 하지 않습니다. 이러한 반성을 바탕으로 다음 상황에서 어떤 일이 일어날지 완전히 명확하지 않습니다.
저것들. 내 말은, 우리는 *pClass를 Cbase(Cchild에 비해 작은 클래스)에 대한 포인터로 선언했지만 실제로는 Cchild를 가리킵니다. 여기에서 질문은 delete()가 어떻게 작동합니까? Cbase 의 크기와 동일한 바이트 수를 해제할 것인가(메모리가 막힐 것인가), 아니면 삭제가 올바르게 일어날 것인가?
추신: 글쎄, 주제에 대한 한 가지 질문에 대해: 할당된 메모리 영역(신규)에 이 영역의 크기를 이해할 수 있는 일종의 레이블이 있습니까? 끝)? 다시 말해, 내가 올바르게 선언한 클래스의 크기에 대해 아무것도 모르는 코드가 메모리를 해제할 수 있습니까?
220Volt :
여기에서 질문은 delete()가 어떻게 작동합니까? Cbase 의 크기와 동일한 바이트 수를 해제할 것인가(메모리가 막힐 것인가), 아니면 삭제가 올바르게 일어날 것인가?
물론 올바르게 제거됩니다. 소멸자에 중단점을 분산할 수 있습니다.
추신: 글쎄, 주제에 대한 한 가지 질문에 대해: 할당된 메모리 영역(신규)에 이 영역의 크기를 이해할 수 있는 일종의 레이블이 있습니까? 끝)? 다시 말해, 내가 올바르게 선언한 클래스의 크기에 대해 아무것도 모르는 코드가 메모리를 해제할 수 있습니까?
물론 올바르게 제거됩니다. 소멸자에 중단점을 분산할 수 있습니다.
크기?