class Base { public:Base(){} public: virtual void print(){cout<<"Base";} }; class Derived:public Base { public:Derived(){} public: void print(){cout<<"Derived";} }; int main() { Base *point=new Derived(); point->print(); }解释一下这段代码
时间: 2024-04-10 18:31:41 浏览: 71
Class and Pointer_C++_pointer_class_
这段代码定义了一个基类 `Base` 和一个派生类 `Derived`。基类 `Base` 包含了一个虚函数 `print()`,而派生类 `Derived` 继承了基类 `Base` 并重写了 `print()` 函数。
在 `main()` 函数中,创建了一个指向基类对象的指针 `point`,并使用 `new` 运算符将其初始化为指向派生类对象的指针。这是因为派生类对象可以隐式地转换为基类指针。
然后,通过指针 `point` 调用了 `print()` 函数。由于 `print()` 函数是虚函数,并且指针 `point` 指向的是派生类对象,所以会调用派生类中的 `print()` 函数。因此,程序的输出将是 "Derived"。
阅读全文