【发布时间】:2015-12-17 16:55:51
【问题描述】:
我有一个名为 Rectangle 的结构:
struct Rectangle {
std::vector<float> m_min;
std::vector<float> m_max;
exType timeOfArrival, timeOfexpiry;
unsigned int id;
};
在一个函数中,我通过值传递一个矩形并将对象保存到数据库中。我想返回矩形的指针,以便我可以在函数之外使用它并将它(指针)保存在向量中。根据我从 C++11 开始阅读的内容,不需要返回指针,所以我返回矩形。这是正确的方法吗?如何获得指向函数中创建的对象的指针?
这就是我现在的做法:
Rectangle Insert(Rectangle rect){// "Insert" is a function of another class
SaveIntoToDB(rect);// Calls other functions that use reference
return rect;
}
我需要一些不会在内存中产生重复的快速的东西。
【问题讨论】:
-
不清楚您的要求。在函数调用之前似乎存在
rect- 那么为什么需要返回它。另外,SaveIntoDB 是否修改rect? -
嗯,我有一个不适合内存的大文件,所以我读取了一些矩形并将它们存储到数据库中。不,SaveIntoDB 不会修改矩形。
-
查看 Roddy 的代码 sn-p 下面的代码几乎可以满足您的需求。
-
既然
rect是来电者发出来的,为什么还要还给他呢?他已经在他在通话期间使用的变量中包含了它。
标签: c++ pointers object memory