读书人

关于effective c++ 条款 25的一个有关

发布时间: 2012-03-09 16:54:57 作者: rapoo

关于effective c++ 条款 25的一个问题 高手进来啊
以下是effective c++里面的一段 条款25

void f(int x);
void f(string *ps);

void * const null = 0;//可能的null定义

f(0);//调用f(int)
f(static_cast(null));//调用f(string*)
f(static_cast(0)); //调用f(string*)


其中的
f(static_cast(null));
f(static_cast(0));

小弟翻遍了书和质料也没找到有这种用法啊 而且在vc下也不能编译通过
恳请各位大哥指点迷津啊

[解决办法]
你看书不认真,或者,你用的effectivce c++电子版是错版
原书写的是:
f(static_cast <string*> (NULL)); // 调用f(string*)
f(static_cast <string*> (0)); // 调用f(string*)

[解决办法]
up

void * const NULL = 0; // potential NULL definition
f(0); // still calls f(int)
f(static_cast <string*> (NULL)); // calls f(string*)
f(static_cast <string*> (0)); // calls f(string*)


f(0); // calls f(int)
f(NULL); // error! — type mis-match
f(static_cast <string*> (NULL)); // okay, calls f(string*)

[解决办法]
特地去看了下我收藏的effective c++果真有一个版本的中文版是楼主这样的错误,估计是笔误,2楼正确

读书人网 >C++

热点推荐