相关文章  
  • 浅谈如何利用BartPE创建PE工具盘
  • Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
  • 在完成所有绑定后仍然有许多要进行的操作
  • 在你的企业中管理Windows和应用程序
  • 动态加载用户控件的组件
  • 小心GDI+资源泄漏 -- 猜想 测试 应对全过程
  • 浅谈 C# 中的代码协同 (Coroutine) 执行支持
  • 在 C# 中处理结构内的数组源代码分析
  • 谈 WinDbg 之 InternalCall 的使用与实现
  • 谈 WinDbg 之 AppDomain 的创建过程
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    Visual Studio 2005中C++的变化5

    包含的非管理源文件被清除,即使其他调用函数忘了去解析。
      
      指针和句柄
      在C++扩展名管理中,C++的主要限制没有变化,同样的符号和语法用做完全的事情,*的含义依赖于你的代码中的其他位置的信息,你可以试试下面的代码:
      
      Foo* pf = new Foo();
      
      Foo对象将在哪里建立?那块内存是否被清除?我能象下面那样对指针做算法吗:
      
      pf++;
      
      答案依赖于Foo是否用__gc关键字声明,假如它是碎片收集对象,它只能在管理堆不是在本堆和堆栈中建立,另一方面,如果没有用__gc声明,将在本堆中分配内存给它,你必须记得去清除它。
      
      如果编译器有自由去改变语言,就象在C++/CLI上发生的,可以忽视什么地方生存的什么类型的类,可以用不同的语法表明它在哪里生存:
      
      Foo^ hf = gcnew Foo();
      
      这被叫做句柄,许多C++团队好象都是用^符号来标明的,你可以用*和->来解除句柄的引用,你可以从实例的声明而不是回过头从类的声明中得到生命期的声明。例如:
      
      ref class R
      {
      private:
      int m_a;
      public:<

    页码:[1] [2] [3] [4] [5] [6] [7]5页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved