2012-03-02 3 views
1

"name :: name"구문을 설명하고 C++ 프로그래밍에서이 구문을 사용하는 방법을 설명해 주셨으면합니다. 나는 보았지만 아직 얻지 못했다. 도와 주셔서 감사합니다."name :: name"은 C++에서 무엇을 의미합니까?

void UsbProSender::SendMessageHeader(byte label, int size) const { 
    Serial.write(0x7E); 
    Serial.write(label); 
    Serial.write(size); 
    Serial.write(size >> 8); 
} 
+6

을 고려 ...하지만 당신은 내가 제안 유용한 대답을 원하는 경우 귀하의 질문에 더 많은 컨텍스트를 추가 할 수 있습니다. – FatalError

+0

방금 ​​답변을 편집하고 코드를 추가했습니다 – unshakeable

+0

누가 책을 태웠습니까? –

답변

10

::이 범위 결정 연산자 : 여기

컨텍스트 코드이다.

std::coutstd 네임 스페이스에 cout입니다.

std::vector::push_back은 std :: vector의 push_back 메소드입니다. 코드 예제에서

:

void UsbProSender::SendMessageHeader(byte label, int size) const { 
    Serial.write(0x7E); 
    Serial.write(label); 
    Serial.write(size); 
    Serial.write(size >> 8); 
} 

UsbProSender::SendMessageHeader

UsbProSender 클래스의 SendMessageHeader 방법에 대한 정의를 제공하고 있습니다.

다른 (더 완전한) 예 :

class Bar { 
    int foo(int i); // forward declaration 
}; 

// the definition 
int Bar::foo(int i) { 
    return i; 
} 
+0

구문 예제로 많이 도움이되는 연산자의 이름을 알려 주셔서 감사합니다 – unshakeable

+0

좋은 대답입니다. UsbProSender는 클래스 또는 네임 스페이스 중 하나 일 수 있습니다. 그가 준 예에서 알 수는 없습니다. –

+3

이 함수는 const이므로 멤버 여야합니다. – SoapBox

2

이 범위 결정을위한 연산자이다. 는 생성자처럼 들린다 어떤 맥락없이 그 코드

class A { public: void f(){} }; 
class B { public: void f(){} }; 
class C : public A, public B {}; 

int main(int argc, char *argv[]) 
{ 
    C c; 
    // c.f(); // ambiguous: which one of two f() is called? 
    c.A::f(); // OK 
    c.B::f(); // OK 
    return 0; 
} 
관련 문제