方法名重复时的应对
假设有以下情况
class test {
public:
test(){};
~test(){};
double sin(double);
double call_sin(double num, int flag);
};
sin函数在c标准库里的math.h已经提供 但你并不想在所有场合都使用标准库的sin 而自己在类里也实现了一个sin
通过封装的接口call_sin调用实现求正弦函数
double test::call_sin(double num, int flag) {
if (flag) {
return sin(num); // 调用的是自定义sin
} else {
return ::sin(num); // 调用的是标准库sin
}
}
::符号
在C++ 里一般用作命名空间说明和作用域说明
当然还有些情况下可用于指明使用全局变量/方法
int mm = 2;
class test {
public:
test(){
}
call(int flag) {
int mm = 1;
if (flag)
std::cout << mm << endl; // 输出1 局部变量
else
std::cout << ::mm << endl; // 输出2 全局变量
}
};