C ++非原始类成员动态初始化

时间:2015-08-21 14:07:48

标签: c++ oop

来自Java,我已经习惯于能够包含我在其他类中创建的类,例如:

class Pepperoni{

}

class Pizza{
  Pepperoni pepperoni;
  Cheese cheese;
}

然而在C ++中,它似乎解释了我所看到的声明,而不是:函数调用使用带有空参数的默认构造函数初始化'Pepperoni'类。

我想要做的是能够创建一个Pizza类并初始化从其构造函数的输入中获取的'Pepperoni'和'Cheese'成员变量。比如:

Pizza::Pizza(Pepperoni pepperoni, Cheese cheese){
  this.pepperoni = pepperoni;
  this.cheese = cheese;
}

这只是一厢情愿的想法吗?我必须以另一种方式做吗?我是否忽略了C ++的精彩功能?

谢谢!

1 个答案:

答案 0 :(得分:0)

这在Java和C ++中有所不同。虽然在Java中你所有的都是对基于堆的对象的引用,但在C ++中你所写的是OBJECT本身,而不是对它的引用。我建议你阅读一些关于C ++ OOP基础知识的资料,以便更好地理解这一点。例如,您可以阅读此内容并关注此问题中包含的其他问题的链接:C++ Pointer Objects vs. Non Pointer Objects