“name :: name”在C ++中的含义是什么?

时间:2012-03-02 00:57:20

标签: 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);
}

2 个答案:

答案 0 :(得分:10)

::是范围解析运算符。

std::cout是名称空间cout中的名称std

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正在为SendMessageHeader类的UsbProSender方法提供定义。

另一个(更完整)的例子:

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

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

答案 1 :(得分: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;
}
相关问题