저는 상속받은 객체의 정렬을 지시하는 기본 클래스를 갖고 싶습니다. 할당 된 방법과 배열을 사용자 지정 배열 템플릿에 할당하는 방법을 제어 할 수 있기 때문에 힙에 문제가 없습니다. 그러나 C++와 관련하여 클래스의 실제 크기는 전혀 변경되지 않습니다. 즉, 파생 클래스의 포인터에 대해 포인터 연산을 수행하면 잘못된 위치로 건너 뜁니다. 그것은 하나의 문제입니다.상속받은 클래스에 클래스 정렬? 모든 스택 정렬을 강제 하시겠습니까? 크기를 변경 하시겠습니까?
문제 2는 스택 정렬입니다. 직접 전체 스택을 16 바이트 정렬 포인터로 강제하는 방법은없는 것 같습니다.
이러한 모든 영향을 볼 수있는 유일한 것은 vC++ 및 g ++ 컴파일러 특정 설정이지만 문제는 여기에 항상 정렬을 수동으로 수정하지 않아도된다는 것입니다. 그것은 통증은 말할 것도없고 오류가 발생하기 쉽습니다.
나는 또한 일종의 스마트 포인터를 만들 수도 있지만 그게 더 많은 문제를 제기 할 수도 있습니다.
기본 클래스 만 정렬하면 하위 클래스도 정렬됩니까? 그렇다면 대부분의 문제점을 해결할 수는 있지만 문제가 될 수 있습니다.
감사합니다. 거기에 '정렬되지 않은'포인터를 할당하려고하면 컴파일러 오류를 피할 수있는 방법이 있습니까? 나는 그것이 나 자신을 얻은 이후로 항상 정렬되어 있다는 것을 안다. 나는 가능한 한 전체 프로그램을 통해 이러한 선언을하는 것을 피하고 싶습니다. 이것이 쉬운 일이 아닌 것 같지만 그렇지 않습니다. –
신경 쓰지 마 마침내 문제가 발생합니다. 이전에이 팝업이 있었지만 해결할 수 있다고 생각하지 않았지만 참조를 전달하는 것으로 변경하면 문제가 해결되었습니다. 나는 매우 혼란 스러웠지만 혼란스러운 주제라고 생각합니다. –
일부 코드를 게시하고 싶을 수도 있습니다. 컴파일러가 '정렬되지 않은 포인터'에 대해 불평할지 모릅니다. 바이트 배열에 대한 포인터를 클래스에 캐스팅하는 경우 정렬 요구 사항을 위반했을 수 있습니다. 참조로 무엇을하고 있더라도 문제를 숨길 수 있습니다. –