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

关于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楼正确