首页 > 解决方案 > 多级继承和访问属性

问题描述

在这段代码中,如果 D 具有 A、B、C 的所有公共属性,为什么我不能直接给 D 类赋值。

class A
{
public:
  string name;    
};

class B: public A
{
public:
  string grade;
};

class C: public B
{
public:
  int age;
};

class D: public C
{
public:
  int val;   
};

// *this is giving an error called can't use dot on type.*
int main(int argc, char** argv)
{     
  class D;
  // *this part below is throwing an error.* 
  D.val=2;
  D.age=3;
  D.grade="good";
  D.name="ABC";
}

标签: c++

解决方案


这里的问题是你不想要class D;. 你想创建一个实例D

D myD;

myD.val=2;
myD.age=3;
myD.grade="good";
myD.name="ABC";

那应该行得通。


推荐阅读