C에서 정적 함수를 비정적 함수로 오버로드
컨텍스트:
함수 오버로드 다른 반환 유형을 사용하는 것은 C에서 지원되지 않으며, 비정적 함수로 정적 함수를 오버로드하려고 시도할 때도 마찬가지입니다. 이 시나리오는 제공된 클래스 정의에 설명되어 있지만 오류가 발생했습니다.
표준 금지:
이 동작은 C 표준(ISO 14882: 2003, 섹션 13.1/2):
모호성 고려 사항:
오버로드가 허용되더라도 다음과 같은 이유로 모호성이 발생합니다.
예:
<code class="cpp">class Foo { public: static void print() { cout << "static" << endl; } }; Foo f; f.print(); // Ambiguous: static or non-static call?</code>
대체 접근 방식:
C에서는 함수가 정적으로 호출되는지 여부를 결정하는 것이 불가능하므로 원하는 기능을 달성하기 위해 대체 방법을 사용할 수 있습니다.
위 내용은 C에서 정적 함수가 비정적 함수로 오버로드될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!