C++ 我可以把虚函数中的这个指针当作派生类的指针吗

C++ 我可以把虚函数中的这个指针当作派生类的指针吗,c++,C++,由于这是Base*类型,我可以将其视为派生*并调用/更改派生类特定成员吗 由于这是Base*类型,我可以将其视为派生*并调用/更改派生类特定成员吗 它不是一个基础*。您在派生::show的范围内。在此范围内,其静态类型只能是派生的*。覆盖Base::show与否并不影响这一点 因此,在派生::show中访问派生的任何成员都是完全合法的。这就是重写类应该如何通过使用其特定于类的成员自定义行为 class Base{ public: virtual void show(){ cou

由于这是Base*类型,我可以将其视为派生*并调用/更改派生类特定成员吗

由于这是Base*类型,我可以将其视为派生*并调用/更改派生类特定成员吗

它不是一个基础*。您在派生::show的范围内。在此范围内,其静态类型只能是派生的*。覆盖Base::show与否并不影响这一点

因此,在派生::show中访问派生的任何成员都是完全合法的。这就是重写类应该如何通过使用其特定于类的成员自定义行为

class Base{
 public:
  virtual void show(){
      cout<<" In Base \n"; 
   }
};

class Derived: public Base 
{ 
    int x;
   public: 
       void show() {
             this->x = 10;
             this->printX(); 
         } 

        void printX(){
           cout<<x;
       }
}; 

int main(void) 
{ 
    Base *bp = new Derived; 
    bp->show();  // RUN-TIME POLYMORPHISM 
    return 0; 
}
         this->x = 10;
         this->printX();