2012-03-08 4 views
0

C에서 연산자 오버로딩 또는 이와 유사한 (인라인 함수?)를 수행 할 수 있습니까? 나는 C가 class을 지원하지 않지만, struct에 대한 운영자를 만들 수 있습니까?C에서 연산자 오버로딩?

구글은 '+'를 무시할 것이므로이 온라인에 관해서는 아무 것도 찾을 수 없습니다.

+0

많은 C 컴파일러가 인라인 함수를 지원하지만 C에는 연산자 오버로딩이 없습니다. 실제로 [Wikipedia] (http://en.wikipedia.org/wiki/C99)에 따르면 C99은 인라인 함수를 표준의 일부로 지원합니다. –

+1

[Operator overloading in C] (http://stackoverflow.com/questions/3417413/operator-overloading-in-c) –

답변

9

아니요, C에서 할 수 없습니다. 연산자를 오버로드하려면 C++을 사용하십시오.

일종의 C++ 객체와 같은 동작을 원하면 구조체 안에 함수 포인터를 넣으십시오.

+0

어떻게할까요? –

+1

무엇을할까요? 구조체에 함수 포인터 넣기? 'struct x {void (* functionPointer) (void)}; ' –

+0

연산자 오버로딩은 실제로 내가 작업 한 프로젝트에서 C++로 전환 한 이유입니다. 정상 함수보다 오버로드 된 연산자를 사용하는 것이 훨씬 편리합니다 벡터 수학을 할 때. – Demi

0

C는 연산자 오버로딩을 지원하지 않거나 구조체 내부의 함수를 지원하지 않습니다. 이러한 기능을 사용하려면 C++을 사용해야합니다.

3

불가능하지 않습니다.

그런데 -"C++"을 검색어에 추가하면 C++을 Google 검색 결과에서 삭제할 수 있습니다.

0

C는 연산자 오버로딩을 지원하지 않습니다.

1

C++는 연산자 오버로딩이 중요하고 흥미로운 기능을 도입했습니다.

이 기능을 사용하려면이 기능을 사용해야합니다.