我希望有一个简单的问题,我无法找到关于'变量'被初始化的具体答案。这是有问题的初始化列表: Triangle.cc类变量将基类后初始化
Triangle::Triangle(Vector _a, Vector _b, Vector s, Point o)
: a(_a), b(_b), Shape(o, new RectilinearAnimationStrategy(s, bBoxMaxX(), bBoxMinX(), bBoxMaxY(), bBoxMinY())){}
我知道,因为它们是在类中定义,但是,当你在初始化一个对象作为这种情况下,你必须初始化以相同的顺序变量好?在调用Shape
之前,我需要明确初始化a
和b
,以便将正确的值返回到RectilinearAnimationStrategy
。一切我试图让我
Triangle.h:在构造函数中
Triangle::Triangle(Vector, Vector, Vector, Point)
:
Triangle.h:11:警告:警告:基地Shape
三角Triangle::b
会后
Triangle.cc:9进行初始化。 cc:9:警告:此处初始化时
任何帮助非常感谢,谢谢。
我没有得到与当前的设置也不符合给出的第一个答案是错误的,但输出不采取a
和b
考虑(形状构造函数被调用时未初始化)
我还应该注意,类Shape是抽象的,所以我不能把它放在大括号内。 – user2950936
基本类总是在成员之前初始化,完全停止。 – Brian
“我需要a和b在调用Shape之前显式初始化,以便将正确的值返回到RectilinearAnimationStrategy。”你必须找到一种不需要的方法。 –