[英]Object Construction in C++
我正在使用C ++進行一個小型項目,該項目需要我創建在另一個類中編寫的自定義類的對象。 該類稱為FIRFilterModule
,它具有一個簡單的空白構造函數。
具有Java背景,我的沖動就是像這樣創建它:
class SensorInput{
public:
FIRFilterModule firFilter;
...More Class Members...
SensorInput():firFilter(FIRFilterModule()){}
...};
但是,這會以非常有用的錯誤消息“此上下文中的錯誤”進行編譯。 我有點迷茫,為什么不起作用。 令我更加困惑的是,我將代碼更改為:
class SensorInput{
public:
FIRFilterModule firFilter;
...More Class Members...
SensorInput(){}
...};
有用。
有人可以幫我理解為什么會這樣嗎?
在這種情況下,為成員字段運行默認構造函數,您無需執行任何操作。 構造函數會自動運行。 所以你可以寫
class SensorInput{
public:
FIRFilterModule firFilter;
SensorInput() { ... }
};
僅當需要調用具有參數或初始化POD類型的構造函數時,才需要成員初始化列表。 例如說FIRFilterModule
有一個構造函數,它接受一個int
。 然后,您將使用成員初始化列表
SensorInput() : firFilter(42) { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.