표현 operator new(sizeof(T))
은 ::operator new
을 통해 T
바이트를 올바르게 할당합니까?클래스 별 연산자 new
는, new T()
이 (생성자를 호출하기 전에) 메모리를 할당하는 방법을 정확하게하는 방법을있는 경우 operator new
의 클래스 별 버전을 호출 할 수있는 방법이 있습니까?
T::operator new(sizeof(T))
T
상속을 operator new
를 정의하지 않습니다 T
경우 컴파일 타임 오류를 제공합니다. 내가 전화하고 싶은 것은 : operator new
Base::operator new
을 정의
Foo::operator new
Foo
경우 경우operator new
을 정의Base
에서Foo
파생됩니다 (I는 다중 상속에 대한합니까 무엇?) 그렇지 않으면::operator new
왜 명시 적으로 호출해야합니까? 클래스에 연산자 new가 오버로드되면 컴파일러는 해당 객체를'new ClassName'으로 인스턴스화 할 때마다이를 사용합니다. –
@Ama : 개체를 인스턴스화하고 싶지 않기 때문에. 나는 단지 기억을 원한다. 그래서 나중의 시점에서 새로운 배치를 사용할 수있다. – fredoverflow
달성하고자하는 것을 설명해 주시겠습니까? 확실히 당신이 객체의 구성으로부터 메모리의 할당을 분리한다면 당신은 당신이 적합하다고 생각하는 방식으로 메모리를 할당 할 수 있습니까? 왜'new T '와 같은 방식으로 메모리를 할당해야합니까? –