Visual C 2010 深度探索.pptxVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual C++ 2010 深度探索;Why C++? 全新IDE:Coding也是一种享受 为Windows 7构建应用程序 支持C++0x,编写更加现代化的C++代码 并行计算,释放多核CPU的威力;C++应用广泛 世界上有大量使用C++开发的系统正在运行,这些系统还需要更新维护 Life runs on code TIOBE编程语言排行榜前三甲 学好C++,更好找工作 Java: 共搜索到 10213 条结果 C#: 共搜索到 3978 条结果 C++: 共搜索到 9422 条结果;酷!:基于WPF构建的全新IDE 早发现,早解决:Live Errors 调用继承树视图(call hierarchy) 不再迷路:灵活的代码跳转 智能提示:IntelliSense 全新的构建系统:MSBuild;在编码时发现问题,解决问题;灵活便利地在代码之间跳转 无需等待编译;MFC为了支持Windows 7进行了大量更新 Multi Touch Gestures | Ribbon | Find Organize | Live Icons Rich Preview | Task Dialogs Taskbar Preview | Taskbar Jump List | Restart Manager Application Recovery | High DPI Windows 7带来大量新的系统API Direct2D | DWrite | Animation | XPS | Ribbon | Web Services API | More… ;Ribbon | Task Dialogs | Taskbar Preview;Visual C++ 2010全面支持最新的C++标准 更高性能的C++ Rvalue reference Generalized constant expressions Extern template 更好用的C++ auto shared_ptr Range-based for-loop Lambda expression regex expression ;右值引用(记作 T )是对右值的引用,对临时量的引用,对无名变量的引用 从copy到move X f() { return X(); }; X a; X r1 = a; // OK: 将r1磅定到一个左值 X r2 = f(); // ERROR: f()是一个右值 X rr1 = f(); // OK: 将rr1绑定到一个临时变量(右值) X rr2 = a; // ERROR: 不能将左值绑定到右值;右值引用如何提高性能? // 不使用右值引用的实现 template class T swap(T a, T b) { // tmp对象创建后,我们就拥有了a的两份拷贝 ????T tmp(a);?? ????a = b;?????? // 现在我们拥有b的两份拷贝 ????b = tmp;????// 现在我们拥有a的两份拷贝 };Move assignment operator MemoryBlock operator=(MemoryBlock other) Move constructor MemoryBlock(MemoryBlock other) // 使用右值引用的实现 #include utility template class T void swap(T a, T b) { T tmp(std::move(a)); // 对象a被移动到对象tmp,a被清空 a = std::move(b); // 对象b被移动到对象a,b被清空 b = std::move(tmp); // 对象tmp被移动到对象b } ;// 创建一个有12个元素的数组 int GetFive() {return 5;} int some_value[ GetFive() + 7 ]; // 非法 // 使用constexpr关键字 constexpr int GetFive() {return 5;} int some_value[ GetFive() + 7 ]; // 合法;C++也变得有些“动态” 不再为变量的类型烦恼 编译器比程序员知道得更多 for (vectorint::const_iterator itr = vec.begin(); itr != vec.end(); ++itr) for (auto itr = vec.cbegin(); itr != vec.cend(); ++itr) int foo( double

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档