【发布时间】:2013-12-08 23:10:17
【问题描述】:
我有一个类有一个类型为vector<CCPoint> 的成员。我想在构造函数调用中初始化这个成员,怎么实现呢?
我是这样设计的:
.h
class A{
public:
A(vector<CCPoint> *p);
private:
vector<CCPoint> *p;
}
.cpp
A:A(){
this->p = p;
}
打电话
Vector<CCPoint> *p = new Vector<CCPoint>;
A a = new A(p);
【问题讨论】:
-
那么这有什么问题(除了明显的拼写错误)?如果您对这种方法有什么不满意的地方,您需要告诉我们。
-
该死,我得到了空指针异常,但现在我看到我在初始化之前使用了向量。如果你几天不睡觉,就会发生这种情况。 @polka 老实说,我没有太多使用 c++,所以我使用了这个规则:“在每个非原始变量之前添加一个 *,它会像 Java 一样工作”,至少就我的经验而言。我知道这很粗鲁……谢谢你的回答
-
“在每个非原始变量之前添加一个 *,它将像 Java 一样工作” 是一个糟糕的规则。它不会像 Java 那样工作,因为 C++ 没有本机垃圾收集器。
-
还不错……但我对 Java 很熟悉
标签: c++ class vector initialization member