我上课叫Bar, 在这个类Bar中有一个类型为Foo的对象(一个类)。 Class Bar有3个参数,x,y和z。 Foo有2个参数,y和z。
目前我正在这样做:
class Bar {
public:
Bar(int x, int y, int z) {
foo = new Foo(y, z);
do something with x;
}
private:
Foo * foo;
};
我记得在一本书中看到另一种使用冒号的方法,但我不记得究竟是怎么回事。
做这样的事情的标准或通常方式是什么?
答案 0 :(得分:5)
使用initializer list并避免动态分配:
class Bar {
public:
Bar(int x, int y, int z) : foo(y, z) {}
private:
Foo foo;
};
答案 1 :(得分:2)
class Bar {
public:
Bar(int x, int y, int z) : foo(y, z) {
do something with x;
}
private:
Foo foo;
};
答案 2 :(得分:0)
你的困惑线应该是
...
Bar(int x, int y, int z) : foo(new Foo(y,z)) {
...
private:
Foo* foo;
...
我看到其他答案不使用指针。但是正确的应该是这个。