dag*_*sse 0 c++ constructor class
当我读c ++代码时,我一直看到"ClassName ClassName :: FunctionName"形式的代码.例如:
Fraction Fraction:: Reciprocal() {
return Fraction(denominator,numerator);
}
Run Code Online (Sandbox Code Playgroud)
在上面Fraction是一个类名,Reciprocal()是在fraction类中声明的函数,并且有一个带有两个参数的构造函数.使用这种格式有什么重要意义?
在C++中,如果在类定义之外实现成员函数,那么您需要指出(除了返回类型和参数类型)您正在编写的函数确实是成员函数.如果你改写了
Fraction Reciprocal() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
然后C++会解释这个,好像你写了一个名为的自由函数(不是成员函数)Reciprocal.另一方面,写作
Fraction Fraction::Reciprocal() {
// ..
}
Run Code Online (Sandbox Code Playgroud)
告诉C++你正在实现嵌套的东西Fraction.
该::表示法称为范围解析运算符.可以把它想象成文件路径中的/.如果您Fraction将文件夹和Reciprocal成员函数视为该文件夹中的文件,则可以将上述代码视为
Fraction // returns a Fraction
Fraction::Reciprocal() { // function name is Reciprocal; it's declared inside Fraction
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |