调用指针类型的方法可以通过以下步骤实现:
下面是一个示例代码,演示如何调用指针类型的方法并禁用多态性:
#include <iostream>
class Base {
public:
virtual void foo() {
std::cout << "Base::foo()" << std::endl;
}
};
class Derived : public Base {
public:
void foo() {
std::cout << "Derived::foo()" << std::endl;
}
};
int main() {
Base* ptr = new Derived(); // 创建Derived对象,并将其地址赋给指针ptr
ptr->foo(); // 调用指针所指向对象的方法,输出 "Derived::foo()"
delete ptr; // 释放内存
return 0;
}
在上述示例中,我们定义了一个基类Base和一个派生类Derived。在基类中,我们声明了一个虚函数foo(),并在派生类中重写了该方法。在主函数中,我们创建了一个Derived对象,并将其地址赋给指针ptr。然后,通过ptr->foo()调用指针所指向对象的方法,输出 "Derived::foo()"。
需要注意的是,如果我们在基类中将foo()方法声明为非虚函数,那么无论指针指向的是基类对象还是派生类对象,调用的都是基类的foo()方法,即禁用了多态性。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云