가끔은 다른 사람의 코드에서 이것을 참조하십시오 :왜 foo() 대신 * foo()라는 메서드를 만들고 싶습니까?
public void *foo() {
...
}
public void bar() {
...
}
그러나 *
의 의미가 무엇인지 이해하지 못했으며 public void *foo()
과 public void foo()
간에 차이가 있습니까?
*** 여기 C++ 코드입니다!
가끔은 다른 사람의 코드에서 이것을 참조하십시오 :왜 foo() 대신 * foo()라는 메서드를 만들고 싶습니까?
public void *foo() {
...
}
public void bar() {
...
}
그러나 *
의 의미가 무엇인지 이해하지 못했으며 public void *foo()
과 public void foo()
간에 차이가 있습니까?
*** 여기 C++ 코드입니다!
public void *foo()
은 void 포인터 (본질적으로 아무것도 될 수 있음)를 반환하는 공용 함수입니다. 포인터에 대한 자세한 문서는 http://www.cplusplus.com/doc/tutorial/pointers/ (특히 무효 포인터 섹션)에서 찾을 수 있습니다.
public void *foo()
및 public void* foo()
은 동일하며 *
의 위치는 순전히 스타일 일뿐입니다 (스타일은 다른 곳에서 사용될 때 의미가있을 수 있음).
public void foo()
은 아무 것도 반환하지 않는 공용 함수입니다.
C++에서'public'을 사용할 수 있습니까? 나는 그것을 본 기억이 없다. 그러나 나는 최근에 3 개의 다른 언어로 크게 프로그래밍되어 있었고, 모두 혼란 스럽다. –
맞습니다. 서명은'public :'이어야합니다. OP의 예제를 사용하고 있었다 : –
문법에 대한 약간의 고상함 : 문법적으로 *는 타입이 아닌 변수 이름에 바인딩된다. 그래서'int * foo, bar'는 하나의 int 포인터 변수 (foo)와 하나의 plain을 선언한다. int (bar)는 구문이 제시하지 않는 것입니다. 'int * foo, bar'는 조금 더 명백하게 만듭니다. – tdammers
간격이 혼동을줍니다. void *foo(int)
은 void* foo(int)
과 같습니다. 전자는 void *
을 반환하고 후자는 아무 것도 반환하지 않습니다. 어떤 사람들은이 혼동을 피하기 위해 '*'를 정확하게 입력하는 것을 선호합니다.
무슨 소리가나요? – c0da
오프 주제입니다. 스택 오버플로가 발생할 수 있습니다. 그 동안, 훌륭한 매뉴얼을 읽으십시오. –
물론 같은 답변 (RTFineM)도 제공됩니다. –