mar*_*nta -1 c++ oop attributes
我是一名Java开发人员.当我需要在课堂上提供参考资料时,我这样做:
public class Account{
private int num;
private Person client;
}
Run Code Online (Sandbox Code Playgroud)
但现在,我必须在C++中做同样的事情
我怎么能在.h文件中这样做?
其实我只有num属性:
class Account{
private:
int num;
public:
Account(int num);
~Account();
int getNum();
void setNum(int num);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何将Person属性放在下面,我应该如何编译它?谢谢.
至少有4种方法可以做到这一点:
Person*),这是大多数C和C++程序员可能会做的事情,但是出于某些原因,许多人不赞成这种做法.您需要在不再需要时删除对象(如果多个对象可能引用同一个对象,这可能是非常重要的),并且在使用之前必须确保指针有效(可怕的nullpointer) .Person&),这将要求您在Account构造时初始化引用,并且您不能在对象的生命周期中稍后更改它.与指针不同,使用引用"看起来像"使用正常变量.Account对象并在其位置创建一个新对象.从积极的方面来说,保证引用是有效的(除非你特别恶意,并且真的试图欺骗编译器).shared_ptr<Person>,如果你想要一个引用计数的垃圾收集,就像你在Java中那样.许多Account对象可以共享相同的内容Person,当引用计数变为零时,它将被删除.Person,这将创建一个副本,可能不是你想要的,除非每个Person只被一个Account人引用(不太可能,人们通常有几个帐户).| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |