![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
当代原始人
辛勤耕耘的小码农
展开
-
[Effective C++]条款30: 避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低
条款30: 避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低 使一个成员为private或protected的原因是想限制对它的访问,对吗?劳累的编译器要费九牛二虎之力来确保你设置的访问限制不被破坏,对不对?所以,写个函数来让用户随意地访问受限的成员没多大意义,对不对?如果你确实认为有意义,那么请反复阅读本段,直到你不这样认为为止。 实际编程中很转载 2013-09-15 23:21:20 · 697 阅读 · 0 评论 -
理解C++中的临时对象
在学习计算机语言诸如C++之类的时候,经常会遇到一个词汇—“临时对象”,这个概念很多初学者在学习了很长时间计算机语言之后还是不能很好的理解它的含义和它背后隐藏的真实实现是什么,本文通过实例探讨了临时对象的特点和特性,对理解计算机语言中这一较难的概念有很大的帮助和启发。 当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里:转载 2013-09-16 01:22:17 · 813 阅读 · 0 评论 -
C++如何处理内联虚函数
当一个函数是内联和虚函数时,会发生代码替换或使用虚表调用吗? 为了弄清楚内联和虚函数,让我们将它们分开来考虑。通常,一个内联函数是被展开的。 class CFoo{ private: int val; public: int GetVal() { return val; } int SetVal(int v) { return val=v; } }; 这里,如果使转载 2013-09-15 22:55:37 · 618 阅读 · 0 评论 -
C++中protected的访问权限
《C++ Primer》中关于protected 成员的描述是这样的: protected Members The protected access label can be thought of as a blend of private and public : Like private members, protected members are inaccessibl转载 2013-09-15 23:05:49 · 637 阅读 · 0 评论 -
宁可编译和链接时出错,也不要运行时出错
除了极少数情况下会使C++抛出异常(例如,内存耗尽 ---- 见技巧7)外,运行时错误的概念和C++没什么关系,就象在C中一样。没有下溢,上溢,除零检查;没有数组越界检查,等等。一旦程序通过了编译和链接,你就得靠自己了 ---- 一切后果自负。这很象跳伞运动,一些人从中找到了刺激,另一些人则吓得摔成了残废。这一思想背后的动机当然在于效率:没有运行时检查,程序会更小更快。 处理这类事情有另一个转载 2013-09-15 23:36:25 · 649 阅读 · 0 评论 -
避免构造/析构函数调用虚函数(转)
不要在类的构造或者析构函数中调用虚函数,因为这种调用不会如你所愿,即使成功一点,最后还会使你沮丧不已。如果你以前是一个Java或者C#程序员,请密切注意本节的内容-这正是C++与其它语言的大区别之一。 假设你有一个为股票交易建模的类层次结构,例如买单,卖单,等等。为该类交易建立审计系统是非常重要的,这样的话,每当创建一个交易对象,在审计登录项上就生成一个适当的入口项。这看上去不失为一种解转载 2013-09-23 23:25:34 · 382 阅读 · 0 评论 -
C/C++ sizeof 操作符
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。 sizeof操作符以字节形式给出了其操作数的存储大小。 操作数可以是一个表达式或括在括号内的类型名。 操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式: sizeof转载 2013-09-23 23:06:45 · 527 阅读 · 0 评论