C++ using 用法

richardswong 2012-05-27 09:37:28
最近在看stl list的实现代码时发现了这样的几句:

protected:
using _Base::_M_node;
using _Base::_M_put_node;
using _Base::_M_get_node;

原来只见过using namespace,这种用法从来没遇到过。哪位大牛能给讲解一下啊?万分感谢。
...全文
792 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BorrowedStory 2012-05-27
  • 打赏
  • 举报
回复
这里是将父类中的private成员设置为自己的protected成员,大家都知道在子类中是不可以访问父类中的private成员的
taodm 2012-05-27
  • 打赏
  • 举报
回复
要想学好C++,不备一本C++ primer是不行了。
FrankHB1989 2012-05-27
  • 打赏
  • 举报
回复
重新声明基类成员。可以消歧义、改访问权限。
feidegengao 2012-05-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
这应该是改变成员权限吧.

就是把基类继承而来的成员变量改到protected里, 因为可能使用的是private继承, 为了让派生类能继续被继承, 把private继承的属性提升到protected里。
[/Quote]++
c++primer 有讲
qq120848369 2012-05-27
  • 打赏
  • 举报
回复
这应该是改变成员权限吧.

就是把基类继承而来的成员变量改到protected里, 因为可能使用的是private继承, 为了让派生类能继续被继承, 把private继承的属性提升到protected里。
tongzhipeng5699 2012-05-27
  • 打赏
  • 举报
回复
哎呀,楼上换头像了...
W170532934 2012-05-27
  • 打赏
  • 举报
回复
首先你要知道命名空间。其实我们的教材上经常用的using namespace std是不明智的。在正常的项目中却很少这样做。因为如果你引用了整个命名空间,那么这个命名空间里面的所有的东西都暴露出来了,比如你使用了using namespace std,那么如果你自己定义一个list,那你就和std里面的list冲突,而如果你不引用std,你完全可以自己定义list。所以为了方便使用命名空间的定义,又防止太多的东西暴露出来,所以,你可以使用using std::list,那么在你的代码中可以使用list,却不会引用到std其它的东西。
tongzhipeng5699 2012-05-27
  • 打赏
  • 举报
回复
我也第一次发现..搜到一篇文章,是你的问题,看一下
http://www.cnblogs.com/yuaqua/archive/2011/10/22/2219991.html
xiaokalearning 2012-05-27
  • 打赏
  • 举报
回复
学习了,要好好看C++了~

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧