我希望有人向我解释“name :: name”语法以及如何在C ++编程中使用它。我一直在寻找,但我还没有得到它。谢谢你的帮助。
这是上下文代码:
void UsbProSender::SendMessageHeader(byte label, int size) const {
Serial.write(0x7E);
Serial.write(label);
Serial.write(size);
Serial.write(size >> 8);
}
答案 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;
}