返回指针,引用或对象?

时间:2011-05-01 17:01:13

标签: c++

  

可能重复:
  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_;
};

0 个答案:

没有答案