C ++将私有数据传递给类中的其他私有函数

时间:2014-06-05 13:26:18

标签: c++ class private future

我在访问成员函数中的私有数据时没有遇到任何问题,但是我无法将数据传递给类中的另一个函数。我对c ++比较陌生,我想知道我是否犯了某种无聊的错误。我想设置四个要从类外部调用的公共函数,并让这些函数将正确的私有数据成员传递给类中的私有函数以供执行。我认为这将是很好的促进代码重用,但它似乎并没有让我这样做。任何帮助将不胜感激。

部首:

class CoaxGage 
{
  public:
    CoaxGage();
    ~CoaxGage();
    bool reconnect();
    bool is_connected();
    bool disconnect();
    bool get_storage_data();
    void async_get_storage_data(void);
    std::pair<bool,bool> async_get_check_done(void);
    bool start_data_storage(void);
    void async_start_data_storage(void);
    std::pair<bool,bool> async_start_check_done(void);
    bool stop_data_storage(void);
    void async_stop_data_storage(void);
    std::pair<bool,bool> async_stop_check_done(void);
    bool clear_storage_data(void);
    void async_clear_storage_data(void);
    std::pair<bool,bool> async_clear_check_done(void);
  private:
    std::pair<bool,bool> async_check_done_(std::future<bool> fut);
    bool connect_();
    bool connected_;
    bool get_storage_count_(DWORD &count);
    std::vector<FLOAT> values_;
    void parse_data_elements_(LS9IF_STORAGE_DATA *data_array, int size);
    std::future<bool> get_future_;
    std::future<bool> start_future_;
    std::future<bool> stop_future_;
    std::future<bool> clear_future_;
};

传递数据的函数:

std::pair<bool,bool> CoaxGage::async_clear_check_done(void)
{
    return async_check_done_(clear_future_);
}

接收数据的功能:

std::pair<bool,bool> CoaxGage::async_check_done_(std::future<bool> fut)
{
    bool done, ret = false;
    auto status = fut.wait_for(std::chrono::milliseconds(0));

    if (status == std::future_status::ready) 
    {
        done = true;
        ret = clear_future_.get();
    } 
    return std::make_pair(done, ret);
}

错误:

  • 错误C2248:'std :: future&lt; _Ty&gt; :: future':无法访问私有 在类'std :: future&lt; _Ty&gt;'
  • 中声明的成员

0 个答案:

没有答案