摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 在C++98中,异常规范(exception specifications)是一个不稳定因素。你必须总结出一个函数可能会抛出的异常类型,所以如果函数的实现被修改 阅读全文
posted @ 2015-12-10 14:27 boydfd 阅读 (1006) 评论 (6) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" STL中的const_iterator等价于pointers to const(指向const值的指针)。它们指向的值不能被修改。使用const的标准做法是,每 阅读全文
posted @ 2015-12-05 09:21 boydfd 阅读 (1208) 评论 (1) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" C++中的面向对象编程总是围绕着类,继承,以及虚函数。这个世界中,最基础的概念就是,对于一个虚函数,用派生类中的实现来重写在基类中的实现。但是,这是令人沮丧的, 阅读全文
posted @ 2015-12-04 07:34 boydfd 阅读 (1744) 评论 (0) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果你为其他开发者提供代码,并且你想阻止他们调用一个特定的函数,你通常不会声明这个函数。函数不声明,函数就不会被调用。太简单了!但是有时候C++会帮你声明函数, 阅读全文
posted @ 2015-12-02 16:14 boydfd 阅读 (748) 评论 (3) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 一般情况下,在花括号中声明一个name(包括变量名,函数名),这个name的可见性会被限制在花括号的作用域内。对于在C++98风格的enum中声明的enum成员 阅读全文
posted @ 2015-11-30 17:22 boydfd 阅读 (1050) 评论 (0) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 我确信我们都同意使用STL容器是一个好主意,并且我希望在 Item 18 中能让你相信使用 std::unique_ptr 也是一个好主意,但是我猜想,我们中没 阅读全文
posted @ 2015-11-25 18:38 boydfd 阅读 (1720) 评论 (1) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 先让我们看一些概念:字面上的 0 是一个 int ,不是一个指针。如果C++发现 0 在上下文中只能被用作指针,它会勉强把 0 解释为一个null指针,但这只是 阅读全文
posted @ 2015-11-23 18:51 boydfd 阅读 (905) 评论 (6) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 从不同的角度来看,在C++11中,对象初始化拥有多种语法选择,这体现了语法丰富造成的尴尬或者烂摊子。一般情况下,初始化的值可以用圆括号,等号,花括号来确定: i 阅读全文
posted @ 2015-11-20 17:22 boydfd 阅读 (2860) 评论 (7) 编辑
摘要:本文翻译自《effective modern C++》,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" Item 5解释了比起显式指定类型,使用auto来声明变量提供了大量技术上的优点,但是有时候auto的类型推导出zigs(这个类型),但是你想要的是zag( 阅读全文
posted @ 2015-11-17 06:54 boydfd 阅读 (857) 评论 (2) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 啊,简单愉快的代码: int x; 等等,讨厌!我忘了初始化x,所以它的值是不确定的。可能,它可能被初始化成了0,这取决于你的编译环境。哎。 不要紧,让我们简单 阅读全文
posted @ 2015-11-15 08:19 boydfd 阅读 (886) 评论 (2) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 对于推导类型结果的查看,根据不同的软件开发阶段,你想知道的信息的不同,可以选择不同的工具。我们将探讨三种可能性:在你编辑代码时获得类型推导信息,在编译期获得信息 阅读全文
posted @ 2015-11-14 08:11 boydfd 阅读 (817) 评论 (3) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" decltype是一个奇怪的东西。给出一个名字或者一个表达式,decltype可以告诉你名字或表达式的类型。大多情况下,他告诉你的就是确实你想的那样。但是偶尔, 阅读全文
posted @ 2015-11-13 12:11 boydfd 阅读 (1156) 评论 (2) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到 "这里啦" 如果你已经读过 item 1 的模板类型推导,你已经知道大部分关于auto类型推导的知识了,因为,除了一种奇怪的情况外,auto类型推导和template类型推 阅读全文
posted @ 2015-11-12 16:14 boydfd 阅读 (922) 评论 (3) 编辑
摘要:本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 一些用户对复杂的系统会忽略它怎么工作,怎么设计的,但是很高兴去知道它完成的一些事。通过这样的方式,c++中的template类型的推导取得了巨大的成功。数以万计的程序员曾传过参数给temp 阅读全文
posted @ 2015-11-09 16:31 boydfd 阅读 (2105) 评论 (7) 编辑
摘要:1:多重继承对于一个继承了多个base class 的对象,将其地址指定给最左端(也就是第一个)base class的指针, 情况将和单一继承时相同,因为两者都指向相同的其实地址。至于第二个或者更后面的base class的 地址指定操作(把derived class对象地址 赋给 ... 阅读全文
posted @ 2015-09-16 20:05 boydfd 阅读 (126) 评论 (0) 编辑
摘要:copy constructor也分为trivial和nontrivial两种 如果class展现出bitwise copy semantics(按位拷贝语义),则不会构造出 copy constructor。反之,会构造出一个copy constructor。不要bitwise c... 阅读全文
posted @ 2015-08-30 09:23 boydfd 阅读 (115) 评论 (0) 编辑
摘要:4种情况下编译器会构造出nontrivial(有用)的构造函数 带有default construction的member class object 我们有两个class: class Foo { public: Foo(), Foo(int) … }; class ... 阅读全文
posted @ 2015-08-29 15:51 boydfd 阅读 (121) 评论 (0) 编辑
摘要:先看一下一个简单的函数:X foobar(){ X xx; X *px = new X; xx.foo(); delete px; return x;}编译器做出的一些转换:void foobar(X& _result){ //按原来的程序需要构造... 阅读全文
posted @ 2015-08-27 18:59 boydfd 阅读 (60) 评论 (0) 编辑
摘要:1:简单对象模型 1>介绍:每个成员都使用一个指针指向真正的成员。所以对象 的大小很好确定,就是成员数*指针大小。 2>用途:成员函数就是使用这个模型的 3>图: 4>加上继承:每增加一个基类,就多一个指针。 2:表格驱动对象模型 1>... 阅读全文
posted @ 2015-08-27 17:25 boydfd 阅读 (115) 评论 (0) 编辑
摘要:遇到的问题:1:在QT中使用opengl,发现一个很神奇的问题,个人感觉是qt的bug。问题详情:在我添加了一个成员变量之后,使用opengl编写的窗口没有任何输出了,只有一个背景。 但是删除那个成员变量后,窗口右成功显示了。解决办法:只要删除或增加几个成员变量即可。这... 阅读全文
posted @ 2015-05-17 09:24 boydfd 阅读 (65) 评论 (0) 编辑