C ++保存在函数

时间:2015-12-17 16:55:51

标签: c++ pointers object memory

我有一个名为Rectangle的结构:

 struct Rectangle {
    std::vector<float> m_min;
    std::vector<float> m_max;
    exType timeOfArrival, timeOfexpiry;
    unsigned int id;
};

在函数中,我按值传递一个矩形并将对象保存到DB中。我想返回矩形的指针,以便我可以将它用于函数并将其(指针)保存在向量中。从我从C ++ 11开始阅读的内容来看,没有必要返回一个指针,所以我返回了矩形。这是正确的方法吗?如何指向函数中创建的对象?

我现在就是这样做的:

Rectangle Insert(Rectangle rect){// "Insert" is a function of another class
    SaveIntoToDB(rect);// Calls other functions that use reference
    return rect;
}

我需要快速的东西,不会在内存中产生重复。

1 个答案:

答案 0 :(得分:1)

这会有什么问题?

void Insert(const Rectangle &rect)
{
 ...
}

被称为

Rect myrect = something...;
Insert(myrect);
doSomething(&myrect);  // Do something with pointer to myrect

通常,根据您的问题和代码,您应该在此阶段完全避免使用指针。