使子类继承基类的现有实例
Make subclass inherit existing instance of base class
我试图重写一个应用程序从c++到PHP,我很好奇我如何可以初始化我的子类与值从我的基类的现有实例。这样做的原因是我有一个基类列表,每个基类可以有多个配置。我在c++中通过从子类的初始化器中调用基类的复制构造函数来实现这一点:
class A {
public:
A(int a) : a(a) {};
protected:
int a;
}
class B : public A {
public:
B(int b, const A &a) : A(a), b(b) {};
private:
int b;
}
我一直在试图找出如何在PHP中实现类似的东西,但我对PHP对象模型的了解并没有反映出任何与我上面描述的类似的功能。
看看这个,修改不需要的部分。
<?php
class A
{
protected $a;
function __construct($_a)
{
$this->a = $_a;
}
function PrintA()
{
echo $this->a;
}
}
class B extends A
{
private $b;
function __construct($_b, $_a)
{
$this->b = $_b;
parent::__construct($_a);
}
function PrintB()
{
echo $this->b;
}
}
$classA = new A(5);
$classA->printA();
$classB = new B(5,2);
$classB->printA();
?>
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 没有实例的基类?
- 从基类实例调用派生类方法而不进行强制转换
- 为什么派生类的实例从基类调用方法?
- 从模板基类派生是否在派生类声明的点实例化模板
- 是否可以从派生类返回基类的实例?
- 为什么不能在实例化对基类的引用的同时实例化指向派生类的指针?
- 选择专用于派生实例的基类的类模板
- 基类中向量的干净实例化
- 在C++中,为什么仅包含与其基类实例的联合的派生类占用的内存多于联合的大小?
- 为什么我无法使用受保护/私有继承访问派生实例中基类的受保护成员?
- 使用单一实例类作为派生类时,如何访问基类中的函数
- 为什么模板名称在派生类中可用(基类是模板的实例)?
- 如何为抽象基类创建模板实例化?
- 在C++中,有没有办法区分基类指针指向的实例类?
- 从基类堆栈调用派生类实例
- 如何将指针存储在实例变量中,该指针被声明为指向基类的指针
- 声明基类类型的指针,但随后通过指向子类来实例化它.这是良好的编程实践吗?
- 派生实例不是指针时的基类的异构容器
- C++用于深层继承的模板单一实例基类