【发布时间】:2012-11-29 14:51:00
【问题描述】:
例如,我创建了一个名为Circle 的类,并在Circle.h 中定义它。
class Circle {
public:
Circle *parent;
Circle();
};
并且在与Circle.h 相同目录下的一个单独的Circle.cpp 文件中,我定义了构造函数。
Circle::Circle() {
// creates a root circle, parent is set to itself
*parent = ????
}
我应该在???? 部分填写什么?在 AS3 中,我知道在定义类的函数时可以使用this 关键字来表示实例本身。你在 C++ 中使用什么?
编辑 2012/11/29 23:56
还有一个构造函数:
Circle(Circle*);
Circle::Circle(Circle *cParent) {
*parent = *cParent;
}
一个函数在被调用时会创建一个新的Circle 实例并将新实例的*parent 设置为调用者。
void addChild();
void Circle::addChild() {
Circle child(????);
}
???? 仍然是那个神秘的部分。根据我阅读的资源,this 似乎已被弃用或已成为其他含义?
【问题讨论】:
-
为什么需要
parent指向它自己?这就是this的用途。 -
父 = 这个;工作......如果这是你需要的。
-
@JohnDibling - class 在标题中定义;它的非内联成员函数在源文件中定义。
-
@ThePluc:这不是 OP 需要的。它没有任何用处。
-
对不起,我没有说清楚。我有另一个函数创建一个新的
Circle实例并将*parent设置为函数调用者。你会在我的编辑中看到。
标签: c++ class instance keyword