基类成员引用 以下是引用片段: template class Foo : public Base { public: void foo() { base_func(); m_base_member = 0; } }; |
这段代码在VC++中同样没有问题,但是GCC中不能通过。因为GCC并不知道base_func,m_base_member是什么。对于这个问题,你可以有两种改法: 改法1:加上域作用符Base:: 以下是引用片段: template class Foo : public Base { public: void foo() { Base::base_func(); Base::m_base_member = 0; } }; |
改法2:使用using指示符 以下是引用片段: template class Foo : public Base { public: using Base::base_func; using Base::m_base_member; void foo() { base_func(); m_base_member = 0; } }; |
这两种方法各有好处,在class Foo中出现大量的Base::base_func、m_base_member的引用时,使用using是方便的。而如果只有一次,那么方法1显得简短。  
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |