최근 개발자가 Swift에서 struct
상속을 주제로 (또는 더 정확하게는 Swift에서 struct
상속 부족) 간략하게 논의했습니다.C++ 및 Swift : C++ 스택 프레임에서 구조체가 어떻게 처리됩니까? Swift가 struct 상속을 지원하지 않는 이유는 struct 상속의 복잡성입니까?
struct
들- 상속이
struct
의 크기가 달라질 수 있다는 것을 의미 - 값 형식은 스택 프레임 사이에 복사되는 값 유형은 다음과 같습니다 나는 때문에 스위프트가
struct
상속을 지원하지 않는 이유가 있다고 가정 값 유형 파라미터를 갖는 - (예
Lorry
Vehicle
로부터 상속Lorry
는 다음Lorry
Vehicle
가보다 더 많은 공간을 필요로 할 경우, 추가) 컴파일 시간에 알려지지 않은 크기의 호출자는 호출자의 스택 프레임 구성을 복잡하게 만들며 호출 수신자의 데이터에 액세스 할 수 있습니다.
나는 이러한 복잡성으로 인해 모든 struct
을 포함하여 성능을 저하시키는 함수 호출은 Swift가 struct
상속을 허용하지 않습니다. 이 논리가 맞습니까?
그러나 그때 나는 C++에 대해 생각합니다. C++은 struct
상속을 허용하고 C++는 매우 성능 중심입니다. 이것은 내가 스위프트에 대한 나의 논리가 struct
상속을 허락하지 않는다고 생각하게 만든다. 어떻게 C++이 성능에 부정적인 영향을 미치지 않고 struct
상속을 얻었습니까?