C++ Primer Plus 13章的疑问

 1 void show(const Brass &rba)
 2 {
 3     rba.ViewAcct();
 4     cout<<endl;
 5 }
 6
 7 void inadequate(Brass ba)
 8 {
 9     ba.ViewAcct();
10     cout<<endl;
11 }
12
13
14 BrassPlus buzz("Buzz Parsec", 00001111, 4300);
15
16 show(buzz);
17 inadequate(buzz);

为什么show()里的rba调用的是BrassPlus类的ViewAcct函数,而inadequate()调用的是基类Brass的ViewAcct函数。

时间: 2024-08-06 10:09:43

C++ Primer Plus 13章的疑问的相关文章

【C++ Primer 第13章】2. 拷贝控制和资源管理

拷贝控制和资源管理 • 类的行为像一个值.意味着它应该有自己的状态,当我们拷贝一个像值得对象时,副本和原对象是完全独立的,改变副本不会对原对象有任何影响. • 行为像指针的类则共享状态.当我们拷贝一个这种类的对象时,副本和原对象使用相同的底层数据,改变副本也会改变原对象. 13.2节练习 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 class HasPtr { 6 public: 7 HasP

函数指针(——C primer 第13章)

函数指针: int  f(int);//声明一个函数 int  (*pf)(int)=&f;//创建一个函数指针,并将函数f的函数地址对它进行初始化. 其实函数名在被使用时,总是由编译器将它转化为指针.上面的那个&那个并非必要,只是显示 的说明编译器将隐式执行的任务. int ans; ans=f(25);//使用名字调用函数f,其实在执行时,函数名f被转化为函数指针,指向函数在内存中的地址. ans=(*pf)(25);//将函数指针转化为函数名,其实在执行时又转化回去了 ans=pf(

高级声明(——C primer第13章)

高级声明: (1) int *f,g: 这个只声明了一个f指针.*是都是紧跟在其后的. (2) int *f(); f是一个函数,它的返回值是一个指向整型的指针. (3) int  (*f)(); f是一个函数指针,这个函数的返回值是一个int类型. (4) int *(*f)(); f是一个函数指针,这个函数的返回值是一个int*类型 (5) int f[]; f是一个整型数组,数组的长度暂时省略 (6) int *f[] f是一个数组,数组的元素是指向整型的指针 (7)  int f()[]

《C++Primer》12、13章

第12章 动态内存 12.1 智能指针 shared_ptr<T> make_shared<T>(args) 直接初始化 new int(10); 默认初始化 new int; 值初始化 new int(); 由内置指针(而不是智能指针)管理的动态内存在被显示释放前一直都会存在. 最好坚持只使用智能指针: delete之后重置指针值为nullptr: unique_ptr u = nullptr 释放u指向的对象,将u置为空 u.release()  u放弃对指针的控制权,返回指针

C++ primer plus读书笔记——第13章 类继承

第13章 类继承 1. 如果购买厂商的C库,除非厂商提供库函数的源代码,否则您将无法根据自己的需求,对函数进行扩展或修改.但如果是类库,只要其提供了类方法的头文件和编译后的代码,仍可以使用库中的类派生出新的类.而且可以在不公开实现的情况下将自己的类分发给其他人,同时允许他们在类中添加新特性. 2. 派生类构造函数首先创建基类对象,如果不调用基类构造函数,程序将使用默认的基类构造函数. 3. 创建派生类对象时,程序首先调用基类构造函数,然后再调用派生类构造函数.派生类对象过期时,程序将首先调用派生

C++ Primer学习总结 第13章 拷贝控制

第13章 拷贝控制 1.    什么是拷贝构造函数? P440 如果一个类的构造函数的第一个参数是自己类类型的引用, 且所有其他参数都有默认值, 那么这就是一个拷贝构造函数. 2.    拷贝初始化和直接初始化.  P441 如果初始化的时候使用等号"="来初始化一个对象, 那么就是拷贝初始化. 相反, 如果初始化时, 没有用等号"=", 那么就是直接初始化. 如果是拷贝初始化, 那么用的一定是拷贝构造函数(也有可能用移动构造函数). 如果是直接初始化, 那么就用参

JavaScript权威指南第13章 web浏览器中的javascript

13.1 客户端javascript window对象是所有的客户端javascript特性和api的主要接入点.表示浏览器的一个窗口,可以通过window对象来引用它. window 的方法 alert() prompt() confirm() 13.2 在html里嵌入javascript 4种方法: 内联:放置在<script></script>标签之中 外部引入:<script src="   "></script> html程序

《深入Java虚拟机学习笔记》- 第13章 逻辑运算

<深入Java虚拟机学习笔记>- 第13章 浮点运算 <深入Java虚拟机学习笔记>- 第13章 逻辑运算,布布扣,bubuko.com

阅读《实例化需求》1-3章有感

今天我阅读了<实例化需求>的1-3章. 第一章主要是讲实例化需求的好处.实例化需求说明是一组过程模式,他帮助团队构建正确的产品. 使用实例化需求说明,团队编写的文档恰到好处,在短迭代或基于流的开发中可以有效地协助变更. <实例化需求>这本书不是以理论的方式来构建一个案例来阐述实例化需求说明的好处,而是来自 于那些来自于那些大大受益于实例化需求说明的团队. 实例化需求可以更有效地实施变更,主要是通过活文档.活文档是系统功能的一个信息源,与程序 代码一样可靠,但更容易使用和理解.他帮助