C++第三十一弹---C++继承机制深度剖析
    		       		warning:
    		            这篇文章距离上次修改已过449天,其中的内容可能已经有所变动。
    		        
        		                
                
#include <iostream>
 
class Base {
public:
    Base() : _base(0) { std::cout << "Base constructor called\n"; }
    virtual ~Base() { std::cout << "Base destructor called\n"; }
    virtual void Show() const { std::cout << "Base Show: " << _base << '\n'; }
 
protected:
    int _base;
};
 
class Derived : public Base {
public:
    Derived() : Base(), _derived(0) { std::cout << "Derived constructor called\n"; }
    ~Derived() override { std::cout << "Derived destructor called\n"; }
    void Show() const override { std::cout << "Derived Show: " << _base << ',' << _derived << '\n'; }
 
protected:
    int _derived;
};
 
int main() {
    Base* ptr = new Derived();
    ptr->Show();
    delete ptr;
    return 0;
}这段代码首先定义了一个基类Base和一个派生类Derived。在Derived的构造函数中调用了Base的构造函数以初始化基类部分。在Derived的Show函数中,我们打印了基类和派生类的成员变量。在main函数中,我们创建了一个Derived类型的对象,并用一个指向基类Base的指针指向它。我们调用ptr->Show()来展示派生类的行为,然后删除指针,触发析构函数。这个例子展示了如何正确地使用继承和多态,以及析构函数的重要性。
评论已关闭