我想創建一個簡單的單向鏈接列表。我在概念上理解它,但是我試圖創建一個。我知道那裏有導遊,但我通過反覆試驗瞭解了更多的東西。瞭解/創建鏈接列表
我簡單Contact
類:
class Contact
{
std::string name, phNum;
Contact* next;
public:
void getInfo();
void printInfo();
};
在這一點上,所有我試圖做的是創建一些聯繫人(即各種各樣的地址簿)的列表,然後打印出他們的信息。
根據我的理解,該列表應包含Contact
類型的幾個唯一對象。
我的問題是,我如何在具有唯一地址的堆中創建多個對象?我嘗試了下面的內容,但它顯然不起作用,因爲所有的指針都是相同的。
while(true)
{
Contact* newEntry= new Contact;
newEntry->getInfo();
// rest of the linking stuff
}
「但它顯然不起作用,因爲所有的指針都是相同的」你爲什麼會這麼想? 'new'不會返回與其他任何仍然有效的指針相同的指針。 – bames53
@ bames53它可以返回相同的指針,指向不同的內存。也許這就是拋棄他的原因。當你輸入循環的不同迭代時,任何舊指針都會超出範圍。 –
我不認爲「試錯」或「遵循指南」是一種善於編程的好方法。相反,您應該瞭解驅動鏈表的抽象算法,並理解語言結構如何工作,然後根據您對這兩種語言的理解,在語言中實現該算法。 –