我正在嘗試將一段C++代碼重構爲類。現在代碼看起來像這樣在C++中擁有另一個類作爲類成員
USB Usb;
ACMAsyncOper AsyncOper;
ACM Acm(&Usb, &AsyncOper);
我想將此代碼移入類的構造函數。另外我想要變量Usb
,AsyncOper
和Acm
作爲類的成員變量。
我寫爲下面
// eZ430.h
class eZ430
{
public:
eZ430();
private:
USB Usb;
ACMAsyncOper AsyncOper;
ACM Acm;
};
// eZ430.cpp
#include "eZ430.h"
eZ430::eZ430() {
USB Usb;
ACMAsyncOper AsyncOper;
ACM Acm(&Usb, &AsyncOper);
}
但這似乎並沒有工作。我對C++非常陌生,無法實現它。
請讓我知道如何實現它。謝謝。
編輯:當我在構造函數中有以下代碼
eZ430::eZ430() {
USB Usb;
ACMAsyncOper AsyncOper;
ACM Acm(&Usb, &AsyncOper);
}
我得到的錯誤error: expected identifier before '&' token
當我將其更改爲
eZ430::eZ430() {
USB Usb;
ACMAsyncOper AsyncOper;
ACM Acm(&Usb, &AsyncOper);
}
我得到的錯誤no matching function for call to 'ACM::ACM()'
您是否收到任何錯誤?告訴我們他們是什麼。 – 0x499602D2
你想做什麼 - 將對象作爲另一個類的成員變量 - 通常*是可能的,但可能有關於所涉及的類的事情使它無法工作。另外,絕對不應該在構造函數中將所有數據成員重新聲明爲局部變量。 – zwol
@ 0x499602D2更新了我收到的錯誤的問題。 – Sudar