虚函数与重载

pp25210 pp25210 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个是《C++ Primer Plus》中文第五版475页的第四题,有如下定义的基类和派生类

class Port
{
private:
char * brand;
char style[20]; // i.e., tawny, ruby, vintage
int bottles;
public:
Port(const char * br = "one", const char * st = "one", int b = 0);
Port(const Port & p); // copy constructor
virtual ~Port() { delete [] brand; }
Port & operator=(const Port & p);
Port & operator+=(int b); // adds b to bottles
Port & operator-=(int b); // subtracts b from bottles, if
int BottleCount() const { return bottles; }
virtual void Show() const;
friend ostream & operator<<(ostream & os, const Port & p);
};

class VintagePort : public Port // style necessarily = “vintage”
{
private:
char * nickname; // i.e., “The Noble” or “Old Velvet”, etc.
int year; // vintage year
public:
VintagePort();
VintagePort(const char * br, int b, const char * nn, int y);
VintagePort(const VintagePort & vp);
~VintagePort() { delete [] nickname; }
VintagePort & operator=(const VintagePort & vp);
void Show() const;
friend ostream & operator<<(ostream & os, const VintagePort & vp);
};

问题:
3.解释为何没有将 operator= 和 operator<< 声明为虚拟?

求解答!以下是这个问题的原文


...全文

相关推荐

C++中重载与重写函数区别及虚函数

C++中重载与重写函数区别及虚函数!

u010263617

C++面向对象编程:操作符重载、虚函数与抽象类及封装

内容概要:本文深入探讨了C++中面向对象编程(OOP)的关键特性,主要讨论了操作符重载、虚函数与抽象类以及类的访问控制与封装。通过详细的代码示例,解释了如何通过操作符重载实现类对象的常见运算,如何利用虚函数实现多态,以及如何通过访问控制符实现类的封装。 适合人群:具有一定C++编程基础的开发者,希望深入了解C++ OOP特性的读者。 使用场景及目标:① 学习如何在C++中重载操作符,使类对象支持常见运算;② 掌握虚函数的使用,实现多态;③ 理解并运用访问控制符,增强代码的安全性和可维护性。 阅读建议:建议读者跟随代码示例逐步实践,同时结合理论部分的理解,以便更好地掌握C++ OOP的核心思想。

空间机器人

c++程序设计讲义 C++的初步认识 类和对象 运算符重载 继承与派生 多态性与虚函数 输入输出流

c++程序设计 内容包括:C++的初步认识 类和对象 运算符重载 继承与派生 多态性与虚函数 输入输出流 很适合初学者使用。

xlkpeter

虚函数与函数重载实验

熟悉并掌握继承与派生、虚函数(函数覆盖)、函数重载技术的使用 通过实例了解函数覆盖和函数重载之间的区别 实验前先复习“类与对象”、“派生与继承”、“多态性”部分的内容。 完成以下实验内容。在Visual Studio.NET上进行程序的编写和调试;思考题选做。 前两个课时完成“验证第1题”和“第一次作业”;后两个课时完成“验证第2题”和“第二次作业”。

linux粉丝

C++程序设计,主要为C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数等章节总结

适用于C++初学者,是关于我第一次学习的相关总结 内容主要为:C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数、输入/输出流、文件操作、函数模板与类模板九个章节的相关知识点总结,其中包括知识点介绍,知识点分析,以及相关案例,及案例分析。

润小仙女
评论 5
收藏 已收藏
分享
返回顶部
pp25210
C++ 语言 65,214 成员 250,514 内容