gpt4 book ai didi

C++ 将列表作为参数传递给函数

转载 作者:可可西里 更新时间:2023-11-01 15:08:02 25 4
gpt4 key购买 nike

我正在尝试构建一个非常简单的地址簿。我创建了一个 Contact 类,地址簿是一个简单的列表。我正在尝试构建一个允许用户将联系人添加到地址簿的功能。如果我将我的代码放在函数之外,它就可以正常工作。但是,如果我把它放进去,它就不起作用了。我相信这是一个按引用传递与按值传递的问题,我没有按我应该的方式对待。这是函数的代码:

void add_contact(list<Contact> address_book)
{
//the local variables to be used to create a new Contact
string first_name, last_name, tel;

cout << "Enter the first name of your contact and press enter: ";
cin >> first_name;
cout << "Enter the last name of your contact and press enter: ";
cin >> last_name;
cout << "Enter the telephone number of your contact and press enter: ";
cin >> tel;

address_book.push_back(Contact(first_name, last_name, tel));
}

我没有收到任何错误,但是当我尝试显示所有联系人时,我只能看到原始联系人。

最佳答案

您正在按值传递 address_book,因此会生成您传递的内容的拷贝,当您离开 add_contact 的范围时,您的更改将丢失。

改为通过引用传递:

void add_contact(list<Contact>& address_book)

关于C++ 将列表作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9302645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com