您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Visual C >> 正文

Google
BlueDog 关于标准C++有关问题的解答
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 12:36:24

BlueDog 关于标准C++有关问题的解答

Author : BlueDog
E-mail : zhenghesoft@etang.com

///////////////////////////////////////////////////////////////////////////////////                                                                            

// //    原创作品,欢迎转载,务必注明版权及出处。请在你转载时加上以下一行         //
//                                                                             //
//        BlueDog 原创  出处: www.csdn.net  E-mail: zhenghesoft@etang.com     //    
//                                                                             //
/////////////////////////////////////////////////////////////////////////////////

    需要申明的是我是一个C++的菜鸟,这篇文章只是为了与大家交流。以下是我在学习C++中自已提出的一些问题并经过自已的思考,参考MSDN的说明以及查看VC定义的头文件而解答的。当然里面可能会有错误或者解答的不完全,也希望大家指正。没有太多的想法,一切只是为了大家的共同提高。
   

      一、为什么在使用String之前需要使用 using namespace std这样一句?
    Essential C++告诉我标准程序库所提供的任何事物,都被封装在命名空间std内。这样子可以避免产生命名冲突。你看到这句话一定想要挖开里面的东东,看看Microsoft是如何做的
    很奇怪的我没有看到我所想要找的
    namespace std {
    ...
    }
    但是我注意到有 _STD_BEGIN 和 _STD_END 在几乎每个标准库头文件中。如是我想Microsoft的有宏定义嗜好的程序员一定又在用#define这个法宝。我只需查找_STD_BEGIN的定义就好了。再一次感谢Microsoft在VC中提供的 Find in Files...功能,听到硬盘一阵狂响后我看到了在Yvals.h中定义的STD家族的几行。(当然你也可以用GREP这个程序来查找,只是没有VC这个方便吧了!)
#if defined(__cplusplus)
  #define _STD   std::
  #define _STD_BEGIN namespace std {
  #define _STD_END  };
  #define _STD_USING
#else
  #define _STD   ::
  #define _STD_BEGIN
  #define _STD_END
#endif /* __cplusplus */

 很明显,Microsoft已经将标准库封在命名空间std中了,所以下次我们要使用时一定不要忘记了加上
       using namespace std;
 
  呵呵

二、关于list::list的定义说明几点(Micrsoft VC 6.0版本)
对于list的使用大家一定不会陌生,可是一定会对如何实现这些是一些疑惑的,我也是如此。我一直想知道list是如何实现其定义的。好的,首先我们看到MSDN中给出list::list的实现
 list::list
   explicit list(const A& al = A());
   explicit list(size_type n, const T& v = T(), const A& al = A());
   list(const list&

[1] [2] [3] 下一页

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号