c++ - 多级继承和访问属性
问题描述
在这段代码中,如果 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";
}
解决方案
这里的问题是你不想要class D;
. 你想创建一个实例D
:
D myD;
myD.val=2;
myD.age=3;
myD.grade="good";
myD.name="ABC";
那应该行得通。
推荐阅读
- python - 如何简化“for循环”和“布尔变量”语句
- django - 如何在 django 中使用 for 循环从动态创建的表中获取 javascript 函数中的表行值?
- reactjs - 将 Drawer Navigator 与 React Navigation 一起使用时的最佳实践
- python-3.x - 为什么:当两个列表长度相同时,dict() 会减少列表的长度?
- regex - 正则表达式不是 Jenkins 管道中的不匹配值
- python - 如何在 Docker CI/CD 管道中的 Python 中定位 Oracle Instant Client
- java - 为什么这些物体在使用“相交”时不会碰撞
- codeception - 在 Codeception 中选择单选按钮
- c# - IDE0059 为“数字”分配了不必要的值
- angular - Nginx 路由到错误的 Angular 应用程序