C++中public继承的概念和用法
C++中public继承是一种类与类之间的关系,它表示一种“is-a”的关系,即子类是父类的一种特殊情况。public继承指的是继承关系中,父类的public成员可以被子类继承,而子类也可以访问父类的public成员。
class Parent {
public:
int a;
};
class Child : public Parent {
public:
int b;
};
在上面的例子中,Child类继承自Parent类,它的public成员a可以被Child类继承,而Child类也可以访问Parent类的public成员。
在实际应用中,public继承可以用来实现多态,即子类可以重写父类的public成员函数,从而实现多态。
class Parent {
public:
virtual void print() {
cout << "This is Parent" << endl;
}
};
class Child : public Parent {
public:
void print() {
cout << "This is Child" << endl;
}
};
int main() {
Parent *p = new Child;
p->print(); // 输出 "This is Child"
delete p;
return 0;
}
在上面的例子中,Child类重写了Parent类的print成员函数,当使用Parent类的指针指向Child类时,调用print成员函数时,会调用Child类的print成员函数,从而实现多态。
public继承还可以用来实现类的聚合,即子类可以拥有父类的public成员,从而实现类的聚合。
class Parent {
public:
int a;
};
class Child {
public:
Parent p;
int b;
};
在上面的例子中,Child类拥有Parent类的public成员a,从而实现了类的聚合。
public继承是C++中一种常用的继承关系,它可以用来实现多态和类的聚合,从而提高程序的可维护性和可扩展性。