C++中的:: mean是什么意思?

lad*_*afa 13 c++ methods

void weight_data::rev_seq(string &seq){ 
//TODO
std::reverse(seq.begin(), seq.end());
}
Run Code Online (Sandbox Code Playgroud)

在这个C++的方法,我觉得这个方法不返回任何东西,所以前缀void,这是什么::告诉之间的关系weight_datarev_seq(string &seq)?谢谢!

Jer*_*fin 25

void是返回类型.::是范围解析运算符,因此它意味着rev_seq在范围内weight_data.weight_data可以是命名空间或类(根据你给出的内容,不可能说出哪个).

  • @ladyfafa:`void weight_data :: rev_seq(string&seq){...}`__is__该成员函数的实现. (2认同)

sbi*_*sbi 14

在C++中,

  • A::Bmeans B是一个namespace或两个class类型中的标识符A,
  • A.B手段B是的一员struct,classunion键入其由对象或参考称为一个实例A,并
  • A->B手段B是的一员struct,classunion键入一个通过指针引用的一个实例A.(相当于(*A).B.)

在其他一些语言中,所有三种情况都包括在内 .只有一种.

请注意,在C++中,不必在其类的定义中实现(定义)成员函数.(如果是,则它们是隐含的inline.)它们可以并且通常在单独的implementation(.cpp)文件中实现.这样做的好处是,当您更改其中一个类成员函数的实现时,并非所有类的用户都需要重新编译.因此,除非weight_datanamespace名称,否则是void weight_data::rev_seq(string &seq) {...}类别成员之外的类成员的定义.

  • 注意:`*`和` - >`运算符可以重载.通常它们只会因迭代器和智能指针等内容而过载.设计不良的代码可能会使这些运算符超载. (2认同)