2013-05-02 21 views
0

我認爲這裏有一些基本的東西我在這裏失蹤,但我有一個叫做'Event'的結構的向量叫做eventTable,我試圖從內部訪問一個函數。我得到這個錯誤:「無效的參數」候選人是:無效push_back(常量事件&)「任何建議?C++我不能更新從一個函數內的向量

struct Event { 
    enum TYPE { 
    Arrival, 
    CPUBurstCompletion, 
    IOCompletion, 
    TimerExpired 
    }; 
    double time; 
    TYPE type; 
    Event(Event::TYPE type, double time) 
     : type(type), 
     time(time) {} 
}; 

vector<Event> eventTable; 

void createEvent(Event::TYPE type, double time){ 
    Event newEvent(Event::TYPE type, double time); 
    eventTable.push_back(newEvent); 
} 
+0

這讓我想起了MVP,除非它真的不是。 – chris 2013-05-02 02:09:30

+1

此問題最可能的原因是複製/粘貼錯誤。 – paddy 2013-05-02 02:12:38

回答

2

不包括類型。你想構造一個對象,而不是聲明一個函數。這構建了一個對象:

Event newEvent(type, time); 
+0

謝謝!這樣可行。 – Erk 2013-05-02 03:07:39

+0

「你正在構造一個對象,而不是聲明一個函數」 - 很好的模糊性......根據「是」意味着現有代碼正在做什麼或意圖是什麼來讀取。 – 2013-05-02 03:09:57

+0

我會編輯我的答案,爲那些沒有大腦的人帶來好處。 – paddy 2013-05-02 03:58:34

1
Event newEvent(Event::TYPE type, double time); 

這不是創建Event類的一個對象。矢量eventTable存儲Event的對象,但是,您目前沒有提供Event的對象。你正在聲明一個函數。

嘗試:

Event newEvent(type, time); 
相關問題