深入理解私有成员
来源:互联网 发布:nginx stub status on 编辑:程序博客网 时间:2024/05/23 12:02
double Twice(double d) {return 2 * d;}
int Twice(int i) {return 2 * i;}
x.Twice(21); //error: `int X::Twice(int)' is private
double Twice(double d) {return 2 * d;}
unsigned short Twice(unsigned short i) {return 2 * i;}
1) 名字查找:首先寻找一个至少包含一个名为Twice的实体的作用域。由于在X和Y中都有Twice实体,编译器就不在查找外层作用域。因此上述例子中全局域中的int Twice(int i) {return 2 * i;}永远都不会成为候选函数。
2) 重载决议:在候选函数中选择一个最佳匹配。对于例1,int Twice(int)是最佳匹配。对于例2,两个候选函数的匹配都是通过标准转换,没有最佳匹配,因此编译器提示错误:call of overloaded `Twice(int)' is ambiguous。
3) 可访问性检查:最后编译器会进行可访问性检查。在例1中,最佳匹配是一个private成员函数,因此不被允许。
Z(): private_(1) {}
void printVal() {cout << private_ << "/n";}
pCalc returnCalc() {return &Z::calc;}
int private_;
int calc() {return 2 * private_;}
template<>void Z::f(const YY& y) //特化Z::f
Z z;
pCalc p = z.returnCalc();
int i = (z.*p)(); //private member function is called
cout << i << "/n";
- 深入理解私有成员
- 私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- C++私有成员变量的理解
- C++ 私有成员变量的理解
- C++ 私有成员变量的理解
- 私有成员变量理解的补充
- 深入理解成员函数指针
- 私有成员
- C++ 的一个问题的理解(私有变量成员)
- C++ 的一个问题的理解(私有变量成员)
- JSP表达式访问类私有成员的理解
- C++ primer中的protected 成员深入理解
- 类成员指针和成员函数指针(深入理解)
- 深入理解数据成员指针、函数成员指针
- std::mem_fun和编译器
- WhbtomT(半路出家) 的每日英语 收集 (一)[转]
- 友元模板和编译器
- 模板函数重载
- 用AJAX开发智能Web应用程序之高级篇
- 深入理解私有成员
- PPP协议的第二阶段CHAP认证过程图解
- 我也不知道说什么....
- [OTHER]死性不改童声版歌词
- 與网络故障专家的對話
- 网易邮箱怎么了!
- 窝~
- 转发: 说声放弃太容易
- 用JavaScript脚本将当地时间转换成其它时区