2011-09-17 8 views
-5

친숙한 모든 프로그래밍 언어 (C/C++, Java, C#, Objective C)는 두 가지 표기법을 모두 허용합니다. 따라서 어떤 의미 상 올바른지 알고 싶습니다. Object* myObj 또는 Object *myObj?개체 * 또는 개체 *?

+2

Java? 확실합니까? –

답변

1

글쎄요. 둘 다 맞지만 포인터 자체가 형식으로 간주 될 수 있고 더 읽기 쉽기 때문에 일반적으로 Object *를 사용합니다.

하지만 문제가 있습니다. 실수에 의한 C에서의 포인터는 실수 형이 아닌 형식의 수정 일뿐입니다. 이 같은 하나 개의 라인에서 여러 변수를 선언 할 경우

Object *a, b; 

당신은 Object의 인스턴스로 개체에 대한 포인터로 ab이있을 것이다, 그래서 올바른 방법은 함께 포인터를 넣어하는 것입니다 상상 변하기 쉬운.

+1

이 때문에 많은 코딩 스타일 지침이 명령문 당 하나의 변수 정의를 고집합니다. –

+0

맞아, 데이빗! 그리고 선언문 한 줄을 사용하여 Object * 방식이 더 읽기 쉽다고 생각합니다! : D –

1

의미 적으로 올바른 것은 무엇입니까?

의미 상 동일합니다. 그러므로 당신이 사용하는 것은 맛의 문제입니다. 당신은


어떤 을 선호 하는가? 음, object* a, b을 작성하고 두 개의 포인터를 선언했다고 생각할 수 있습니다. 물론 당신은 그렇지 않다. a을 포인터로, b을 객체로 선언했다.

따라서 object *a, b에서 object* a, b까지 선호하는 것이 좋습니다.

object *a; 
object b; 

이 방식은 혼란을 더 범위가 없습니다 많은 코딩 스타일 가이드 라인에서 권장 : 그러나, 그것은 각각의 변수 선언에 대한 한 줄을 가지고 더 나은 여전히 ​​믿고있다.

+0

의미 상 동일하지 않습니다. 하나는 선언의 일부이고 다른 하나는 객체의 일부입니다. – superM

+0

의미 상 동일합니다. 그들은 같은 것을 의미합니다. 어의 의미 란 무엇을 의미하는지에 대한 이해가 정확합니까? –

+0

Daniel이 지적했듯이'object * a, b'는'a'를'object'에 대한 포인터로,'b'를'object'로 선언합니다. –