2012-07-17 2 views
0

C에서 Obj-C로 Obj-C++로 마이그레이션하려고합니다. 나는 내 학기 동안 C++에 강의를 들려 줄거야. 잘하면, 나는 그것을 통해 산들 바람.C++ : .h 파일에서 모든 함수와 ivars를 선언해야합니까?

Obj-C에서 개인 및 공개는 헤더 파일에서 선언 한 내용에 따라 결정됩니다. .h 파일의 @interface 내에서 해당 클래스에서 호출 할 수있는 모든 속성 및 인스턴스/클래스 메서드가 레이아웃됩니다. 내가 C++에 대해 가정 할 수있는 것으로부터, 공개적이고 사적인 것 같고, 모두 .h 파일에 기록되어 있습니다 : ivars, 함수, 무엇을 가지고 있습니다. 이 가정에 내가 맞습니까?

+0

C++ 구문에서는 클래스 선언이'.h' 파일에 있다고합니다. –

답변

2

이전 Objective-C 컴파일러의 경우 (주로 헤더 파일에 선언 된 클래스의 @interface에는 .h) 모든 데이터 멤버 ("ivars")가 포함되어야합니다. 최신 LLVM 컴파일러에서는 @implementation (.m 파일)에 나열 할 수 있습니다.

Objective-C 클래스의 다른 부분은 그렇게 제한되지 않습니다. 메서드는 .h, .m, 둘 다 또는 둘 다에서 선언하거나 정의 할 수 있습니다. 헤더는 일반적으로 가장 중요한 메소드를 구현에 특화된 것을 생략하고 설명합니다. 카테고리 (언어의 기능)은 클래스에 새로운 메소드를 추가하고 다른 메소드를 선언하고 정의하는 방법입니다. NSObject과 Objective-C 런타임을 사용하여 생각할 수있는 거의 모든 작업을 수행 할 수 있습니다. 런타임에 클래스에 메소드가 있는지 여부를 결정하거나 메소드를 추가하는 등의 작업을 수행합니다.

1

아니요. 공개 및 비공개로 다양한 .h 파일을 사용할 수 없습니다. obj-c/C++에 대해서는 잘 모르겠지만 더 큰 프로그램에서 선호하는 in.h 파일을 넣으려면 .h 파일을 #include해야합니다.

관련 문제