gpt4 book ai didi

c++ 从函数返回对象?

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:01 26 4
gpt4 key购买 nike

C++(和 oop)的绝对新手。

只是想问一下如何通过将单个 id 传递给 getter 来从列表中返回一个对象(如果它存在)。

我的代码如下:

    class Customer
{
private:
unsigned int custNo;
std::string name;
std::string address;
/* .. */
}

class Store
{
private:
std::string storeName;
std::list<Customer *> customerBase;
std::list<Product *> productStock;
std::list<Sale*> sales;
public:
Store(std::string storeName); // constructor
std::string getStoreName();
Customer & getCustomer(unsigned int custId); //METHOD IN QUESTION

/*..*/

// Constructor

Customer::Customer(std::string name, std::string address)
{
//ctor
}


//

Customer & Store::getCustomer(unsigned int custId){


}

我知道这可能是一个非常基本的问题。我仍然非常感谢您的帮助。提前致谢!

最佳答案

Just wanted to ask how to return an object from a list (if it exists), by passing a single id to a getter.

当你看到“如果它存在”时,你首先应该想到的是指针。这是因为 C++ 中唯一可选的对象表示是指针。值和引用必须始终存在。因此,函数的返回类型应该是 Customer* , 不是 Customer& :

Customer* Store::getCustomer(unsigned int custId){
...
}

如果您需要通过 id 进行快速检索, 使用 map<int,Customer*>unordered_map<int,Customer*> .您也可以使用列表来执行此操作,但搜索将是线性的(即,在最坏的情况下,您将遍历整个列表)。

说到指针,如果你必须存储指向Customer的指针对象,假设对象本身存储在其他容器中,您最好使用 shared_ptr<Customer>在两个容器中,以简化资源管理。

关于c++ 从函数返回对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26975393/

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