我學習C++(從Java來),這是竊聽了地獄了我,說我有...C++成員變量混亂
class Foo {
public:
Bar &x; // <- This is a ref, Bar is not instantiated (this is just a placeholder)
Bar *y; // <- This is a pointer, Bar is not instantiated (this is just another placeholder)
Bar z; // <- What is this???
};
class Bar {
public:
Bar(int bunchOfCrap, int thatNeedsToBeHere, double toMakeABar);
};
在這個例子酒吧具有一個構造函數需要一個爲了創建一個「Bar」而指定的一堆字段。 x和y都不創建一個Bar,我知道x創建一個可以指向Bar的引用,並且y創建一個也可以表示Bar的指針。
我不明白究竟是z是什麼。
這是酒吧嗎?如果是這樣,Bar怎麼能給出唯一的構造函數呢?
它是屬於富的情況下內存條大小的塊,也可以被初始化到酒吧?
或者是別的什麼?
謝謝!
你試過編譯你的例子嗎?這可能會爲您提供一些見解。 (它至少會用「它不能」來回答你的「如何」問題。) – jamesdlin 2013-02-14 03:11:48
使用Bar&x,你必須在構造Foo時指定x。 – 2013-02-14 03:12:56
我相信一個默認的構造函數正在被調用。編輯:沒關係,如果用戶定義了一個,沒有默認的構造函數。 – AlexLordThorsen 2013-02-14 03:13:20