gpt4 book ai didi

c++如何通过引用返回 vector ?

转载 作者:太空狗 更新时间:2023-10-29 23:24:42 25 4
gpt4 key购买 nike

我是一名 C++ 学生,需要一些帮助来理解和完成我的这部分作业。

我有一个 SalesItem 对象的 vector :

class Invoice
{
public:
//blabla
vector<SalesItem> *getSalesItems(); //code provided by the assignment.
private:
{
//blabla
vector<SalesItem> salesItems;
};

我需要返回那个 vector 作为引用:

void Invoice::getSalesItems() //error on this line. Code provided by assignment.
{
return salesItems; //error on this line.
}

现在,我知道给我错误的东西显然是错误的,我什至没有任何指针或引用。我发布的那几行代码只是作为我希望看到的示例(或者更现实地说,是对我有意义的示例。)

我想要一个像其他 get 函数一样工作的 get 函数,用于 int 或 string 等类型,除了这个函数必须通过引用返回(根据赋值的要求。)

不幸的是,我对 vector 和引用的理解不足以解决这个问题,而且我没有任何教育资源可以帮助我解决这个问题。如果有人可以帮助我理解该怎么做,我将不胜感激。

我们很乐意提供任何额外信息。

最佳答案

您需要指定返回类型。此外,最好同时提供 constnon-const 版本。代码如下:

class Invoice
{
public:
vector<SalesItem> &getSalesItems() { return salesItems; }
const vector<SalesItem> &getSalesItems() const { return salesItems; }
private:
vector<SalesItem> salesItems;
};

示例用法:

Invoice invoice;
vector<SalesItem> &saleItems = invoice.getSalesItems(); // call the first (non-const) version
const Invoice &const_invoice = invoice;
const vector<SalesItem> &saleItems = const_invoice.getSalesItems(); // call the second (const) version

关于c++如何通过引用返回 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23233170/

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