虚函数与重载
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++中重载与重写函数区别及虚函数!
C++面向对象编程:操作符重载、虚函数与抽象类及封装
内容概要:本文深入探讨了C++中面向对象编程(OOP)的关键特性,主要讨论了操作符重载、虚函数与抽象类以及类的访问控制与封装。通过详细的代码示例,解释了如何通过操作符重载实现类对象的常见运算,如何利用虚函数实现多态,以及如何通过访问控制符实现类的封装。 适合人群:具有一定C++编程基础的开发者,希望深入了解C++ OOP特性的读者。 使用场景及目标:① 学习如何在C++中重载操作符,使类对象支持常见运算;② 掌握虚函数的使用,实现多态;③ 理解并运用访问控制符,增强代码的安全性和可维护性。 阅读建议:建议读者跟随代码示例逐步实践,同时结合理论部分的理解,以便更好地掌握C++ OOP的核心思想。
c++程序设计讲义 C++的初步认识 类和对象 运算符重载 继承与派生 多态性与虚函数 输入输出流
c++程序设计 内容包括:C++的初步认识 类和对象 运算符重载 继承与派生 多态性与虚函数 输入输出流 很适合初学者使用。
虚函数与函数重载实验
熟悉并掌握继承与派生、虚函数(函数覆盖)、函数重载技术的使用 通过实例了解函数覆盖和函数重载之间的区别 实验前先复习“类与对象”、“派生与继承”、“多态性”部分的内容。 完成以下实验内容。在Visual Studio.NET上进行程序的编写和调试;思考题选做。 前两个课时完成“验证第1题”和“第一次作业”;后两个课时完成“验证第2题”和“第二次作业”。
C++程序设计,主要为C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数等章节总结
适用于C++初学者,是关于我第一次学习的相关总结 内容主要为:C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数、输入/输出流、文件操作、函数模板与类模板九个章节的相关知识点总结,其中包括知识点介绍,知识点分析,以及相关案例,及案例分析。


