1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但假如要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。2. char ca
1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。 2. char car
成员函数与非成员函数最大的差异是,成员函数可以是虚拟函数,而非成员函数不可以。所以如果你有一个函数需要动态绑定(直到执行时期再确定应该调用哪一个函数),你必须用虚拟函数,而此虚拟函数必须是成员函数。
函数内的常量字符串是从程序静态存储区域分配的。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。这个概念一定要清楚,因为函数内的常量字符串的这个分配特性不向全局变量和static变
在没有讲述本章内容之前假如我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢? 这个问题便是本章的重点:
我谈到让一个类支持隐式类型转换通常是一个不好的主意。当然,这条规则有一些例外,最普通的一种就是在创建数值类型时。例如,假如你设计一个用来表现有理数的类,答应从整数到有理数的隐式转换看上去并非不合理
在构造函数中调用虚成员函数,虽然这是个不很常用的技术,但研究一下可以加深对虚函数机制及对象构造过程的理解。这个问题也和一般直观上的熟悉有所差异。先看看下面的两个类定义。 strUCt
从这部分开始我们除了利用内存的信息打印来进行探索外,更多的会通过跟踪和观察编译器产生的汇编代码来理解编译器对这些语言特性的实现方式。汇编方面知识的讨论超出了本文的范围,我只对和我们讨论相关的汇编代码进
smart pointers(智能指针)是行为很像指针但是增加了指针没有提供的功能的 objects。例如,《C++箴言:使用对象治理资源》阐述了标准 auto_ptr 和 tr1::shared
继承和对象净增长 C++中类的继承,是具有净增长效果的。如果基类是Base,继承类是Derived,那么创建 一个Derived类的实例b,在地址空间上,b的前面部分,刚好可以视为另一个Base的实例