2012-05-12 80 views
-1

這個添加函數將帶有一個參數,這個參數將被添加到數組中。我試過使用for循環,但它沒有按照我的預期工作。我目前只是試圖做這樣的事情:我想在C++中爲數組創建一個添加函數

bool homeworklist::add (homework h) 
    { 
    int i = 0; 

    if(current_size < LIST_MAX){ 

     current_size += 1; 

     list[i] = h; 

     ++i; 

     return true; 
    } 
    return false; 
} 

current_size只是一個計數器。 list是屬於作業列表類 列表中的作業對象的數組。 如果對象已成功添加,則函數返回true,如果未正確添加,則返回false。

+0

'列表[I] = H;'被重寫的第一個元素。 – chris

+1

如果不知道什麼是什麼類型,這是沒有道理的。 –

+0

是的,它是。我不知道如何做到這一點,以便每次調用函數時,數組的位置將變爲下一個可用點。 –

回答

1

變量i是本地的,這意味着每次調用這個函數時,它被初始化爲0,因爲這條線:

int i = 0; 

這也意味着在隨後的if聲明,你要分配元素到第一個位置,每次

您可以讓i爲班級成員,就像您可能已聲明current_size一樣。或者可能你可以使用current_size本身。

+0

它的工作,謝謝。我記得下次我有類似的問題。 –

-1
class homework{ 
..... implementation defined 
}; 

class Homeworklist{ 
std::vector<homewok> vhomework; 
Add(homework h) 
{ 
vhomeowrk.push_back(h); 
} 
}; 

逗留從動態memmory分配遠

+0

我有點猜到,看到「作業」出現這麼多次,「std :: vector」是不可能的。 – chris

+0

@chris如果你做動態內存分配*部分,我*幾乎*放入一個*,但ID'必須解釋太多關於對象生命週期,並傳遞值/參考。 – johnathon

相關問題