C++ 在构造函数中初始化变量
但是如何在类的构造函数中实现它呢?您需要从func()方法将其作为参数传递 ob=新的C类(本节第a节) 关键字“base”允许访问父属性C++ 在构造函数中初始化变量,c++,oop,object,inheritance,constructor,C++,Oop,Object,Inheritance,Constructor,但是如何在类的构造函数中实现它呢?您需要从func()方法将其作为参数传递 ob=新的C类(本节第a节) 关键字“base”允许访问父属性 ob->a = a; 有关详细信息,请检查您必须将bclass对象传递给cclass构造函数:- base.a = 9 如果忽略代码中的其他特性。可以在定义中定义指向创建类“cclass”的类的指针: class cclass: public aclass { cclass(const bclass& b) { a
ob->a = a;
有关详细信息,请检查您必须将bclass对象传递给cclass构造函数:-
base.a = 9
如果忽略代码中的其他特性。可以在定义中定义指向创建类“cclass”的类的指针:
class cclass: public aclass
{
cclass(const bclass& b)
{
a = b.a;
}
}
然后将此关键字添加到类“bclass”范围中的类“cclass”定义中:
class cclass: public aclass
{
bclass * bclass_ref;
cclass(bclass * ref)
{
bclass_ref = ref;
a = b_class_ref->a;
}
}
注意:某些编译器可能会在类“cclass”的构造函数上抛出错误。您只需将构造函数公开即可
编辑:我自己测试了代码,您需要在函数“bclass::func”的定义之前添加类“cclass”的定义。我会重读这本书中的那一章,我写了一个答案,但后来删除了它,因为您似乎不了解您试图编写的代码的基本原理。您的目标是什么?在您拥有
new cclass
的地方,类型cclass
尚未声明,因此这不是真正的代码。@RyanHaining在运行时,将为不同的B类对象创建不同的a值和这些对象(B类对象)将创建类的相应对象。“对应”的意思是,对于CbC类,对象的A值等于A的值,它创建了CyCube对象。1在标准C++中没有关键字<代码> BASE/COD>。我没有降低它,它是在正确的方向上,但是在C++中,必须编写代码>这> A<代码>,或者只是<代码> A<代码>;符号this.a
将无法编译。您可能正在使用指向bclass的额外指针。我做的和你写的一样,但我没有使用额外的bclass_ref指针,而是直接做a=ref->a。是的,我在函数“bclass::func”之外做了bclass_ref的定义,以备将来参考,这是我的错,因为它在应用程序退出函数时被销毁。。。
class cclass: public aclass
{
bclass * bclass_ref;
cclass(bclass * ref)
{
bclass_ref = ref;
a = b_class_ref->a;
}
}
ob = new cclass(this);