可能重复:
When to return a pointer, scalar and reference in C++?
您好,
在示例1中。我不知道该使用什么。 Sample
应该作为指针或引用返回,或者像它一样。接下来,在示例2中。GetSample
用于检索Sample对象并推送到队列中。我不知道我应该使用std::dequeue<Sample*>
。我看到对象样本被复制了2次(从GetSample
返回时以及在队列中被推送时)。
如果速度不那么重要,应该怎么做?我对最佳实践感兴趣。
// 1.
Sample GetSample()
{
Sample sample;
// fill sample
return sample;
}
// 2.
class AAA
{
void MakeSomethingWithSample()
{
Sample sample = GetSample();
samples.push(sample);
}
std::dequeue<Sample> samples;
};
class Sample
{
public:
Sample(void);
~Sample(void);
boost::optional<std::wstring> window_caption_;
boost::optional<std::wstring> image_fs_name_,
image_full_path_,
resource_image_name_;
boost::optional<boost::posix_time::ptime> probe_time_;
HWND window_handle_;
};