C++继承。获取基类的数据成员值

标签 c++ inheritance

class A
{
public:
  A(int a, int b, int c)
 :x(a), y(b), z(c)
 {}
 void display()
 {
    cout << "x is " << x << endl;
    cout << "y is " << y << endl;
    cout << "z is " << z << endl;
 }
 int x;
protected:
  int y;
private:
  int z;
};

class B : public A
{   
public:
B(int x, int y, int z, int extra)
: A(x, y, z), num(extra)
{}

void display()
{
    cout << "x is " << x << endl;
    cout << "y is " << y << endl;
    //cout << "z is " << z << endl;
}
private:
int num;    
};


int main()
{
  A yo1(1,2,3,);

  B yo2(4,5,6,100);  //<---

  yo2.display(); //I want to print 1 2 3 100 
  return 0;
}

我这里有一个简单的继承。使用继承,我想获取 A 的值并将其放入 B。如何通过创建 B 对象从类 A 访问其数据成员的值?我创建了一个 A 类的对象,并给它们赋值 1、2、3。最后,我想使用 B 类的显示功能打印 1 2 3 100。

我了解如何使用类 A 中的变量,但我是否也可以获取它们的值?

最佳答案

你对继承的概念感到困惑,

 B yo2(4,5,6,100); 

在此期间,为对象 yo2 创建了与对象 yo1 无关的基类的单独拷贝

A yo1(1,2,3,);

yo1 的数据成员 x,y,z 为 1,2,3,yo2 为 4,5,6 如果你希望输出是 1 2 3 100 然后将对象创建为:

 B yo2(1,2,3,100); 

关于C++继承。获取基类的数据成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525313/

相关文章:

c++ - 通过 C++ 为 AIR native 扩展生成可变长度的字节数组

javascript - 将 RGB 颜色值转换为十进制

c++ - 通过继承的类模板 SFINAE

c++ - 传递给接受基类的函数的变量是否仍然保留它们最派生的类?

c++ - "unspecialized class template can' t be used as a template argument”是什么意思?

c++ - libtool:i686-pc-mingw32 共享中不允许使用 undefined symbol

c++ - 使用 execl() 执行连续进程

c++ - 哪个是在 C/C++ 中将 BSTR 参数转换为 ANSI 的更好代码?

c# - 如何正确继承克隆方法?

java向下转换构造函数调用?