C++学习记录(一)

1. __stdcall 是一个C++函数调用约定, 该约定指定了函数调用时, 参数是按什么顺序压栈的, 是由调用者还是函数自身来使堆栈恢复原始状态的。看来有必要学习下汇编语言和操作系统了

函数调用时, 调用者将参数压入堆栈,当函数调用时从堆栈中取得参数进行计算,计算结束后, 由调用者,或者函数自身恢复堆栈的状态。

(http://www.cnblogs.com/songfeixiang/p/3733661.html)

2. C++11中的异常处理 noexcept, 当函数出现异常时, std::teminate()会立即被调用, 这与 throw()不同, 使用throw()时,编译器使代码更臃肿。(http://blog.csdn.net/zkreats/article/details/50550786)

3. GUID(Globally Unique Identifier) 全局唯一标识符,是由算法生成的128位二进制数组成, 认为生成两个一样的GUID概率非常小。

(http://baike.baidu.com/link?url=ndny70jl8cMEOtfEsi6ehlb3LpcSMd-Rx4GnpVhdw8z-JFcMPwauhc7PM3SOSfVlizOqLiLvtvnuErIXYARtS_)

(http://www.cnblogs.com/jeffwongishandsome/archive/2011/05/02/2034403.html)

4. 纯虚类是包含纯虚函数的类, 常用于作为接口, 标准C++中是没有interface关键字的。(http://blog.csdn.net/goondrift/article/details/19705797)

5. __declspec是标准C++中的关键字, 配合一些属性可以对标准C++的功能进行扩充,__declspec(novtable)使类或结构体无虚函数表,以及无对虚函数表的初始化代码, 用于定义接口。

(http://blog.csdn.net/oldmtn/article/details/7816962)

(http://blog.csdn.net/hollyhock13/article/details/2776276)

__declspec(nothrow) 用于函数声明, 表示该函数不抛出异常;

(http://www.cnblogs.com/ylhome/archive/2010/07/10/1774770.html)

6. C++中的struct是对C语言中struct的扩展,是可以定义成员函数的, 和class类似,区别在于, struct的默认访问控制是public的,更适合用于数据结构的实现, 而class的默认访问控制是private的, 更适合用于对象的实现。

class可以用来定义模板参数, struct不能用来定义模板参数。

(http://www.cnblogs.com/starfire86/p/5367740.html)

7. 协变和逆协变: to be done. 这个还没了解。 在这里记录下。

8. #pragma once 与 #ifdef #define #endif方式都是为了处理二次编译的问题, 但还是有细微差别。

(http://blog.csdn.net/zlhy_/article/details/8192580)

(http://blog.chinaunix.net/uid-20622737-id-1912977.html)

9. 函数模板和类模板, 使用template关键字,在声明和实现时都要使用。在C++11中引入了可变参数模板

(http://www.cnblogs.com/ggjucheng/archive/2011/12/18/2292090.html)

(http://blog.csdn.net/zhx6044/article/details/8858674)

(http://www.cnblogs.com/liyiwen/archive/2013/04/13/3018608.html)

10. 通过使用智能指针,我们可以更好的管理对象的创建和释放,解决new了一个对象之后,忘了delete的问题, 智能指针是一个栈对象

(http://blog.csdn.net/xt_xiaotian/article/details/5714477)

(http://blog.csdn.net/hackbuteer1/article/details/7561235)

11. 右值引用 && 可以将左值和右值分开。右值引用可以实现临时变量的交换,避免不必要的拷贝构造函数的调用。std::move 可以强制将变量转换成右值引用。左值引用就是指常规的引用。

(http://www.cnblogs.com/TianFang/archive/2013/01/26/2878356.html)

(http://blog.csdn.net/fenghen777/article/details/46741995)

(https://msdn.microsoft.com/zh-cn/library/dd293668)

(http://blog.csdn.net/yapian8/article/details/42341307)

 (https://msdn.microsoft.com/en-us/library/dd293668)

12. 内联函数减少了函数调用的开销,膨胀了代码, 当函数体实现较简单时,才建议使用。

(http://blog.csdn.net/kaige2111/article/details/51280355)

13. 名字空间是用于解决命名冲突的,匿名名字空间, 提供了类似将class和struct处理为static的功能。

(http://blog.csdn.net/eric_arrow/article/details/8978905)

posted @ 2017-03-24 16:17  Archer.Huang  阅读(153)  评论(0编辑  收藏  举报