Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在构造函数中初始化变量_C++_Oop_Object_Inheritance_Constructor - Fatal编程技术网

C++ 在构造函数中初始化变量

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

但是如何在类的构造函数中实现它呢?

您需要从func()方法将其作为参数传递

ob=新的C类(本节第a节)

关键字“base”允许访问父属性

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);