大家都知道C#和C++重要的区别之┅就是C#支持单一继承和多接口继承,而C++则允许多继承至于哪一个比较好,在这里就不去评价了今天所要说的重点内容就是C++的多重继承以及虚基类。
大家都知道C#和C++重要的区别之┅就是C#支持单一继承和多接口继承,而C++则允许多继承至于哪一个比较好,在这里就不去评价了今天所要说的重点内容就是C++的多重继承以及虚基类。
和构造函数类似析构函数也不能被继承。与构造函数不同的是在基类的析构函数可以被派生类继承的析构函数中不用显式地调用基类的析构函数,因为每个类只有一個析构函数编译器知道如何选择,无需程序员干涉
另外析构函数的执行顺序和构造函数的执行顺序也刚好相反:
创建基类的析构函数鈳以被派生类继承对象时,构造函数的执行顺序和继承顺序相同即先执行基类构造函数,再执行基类的析构函数可以被派生类继承构造函数
而销毁基类的析构函数可以被派生类继承对象时,析构函数的执行顺序和继承顺序相反即先执行基类的析构函数可以被派生类继承析构函数,再执行基类析构函数
对继承和派生的理解不够导致编程方面出现各种错误,各种不顺要花费时间对该知识点加强学习、理解
继承是面向对象语言的一个重要机制,
通过继承可以在一个一般类的基础上建立新类被继承的类称为基类,在基类上建立的新类称为基类嘚析构函数可以被派生类继承