2012-09-05 105 views
0

問題是這樣的: 我試着用class progress_display(boost/progress.hpp)來統計和顯示我的程序的進度。 類的正確使用:將對象傳遞給函數可以嗎?

1.Instantiation: progress_display pd(count); 
2.for( ; ; ){ 
     pd++; 
    } 
3.With the increment of 'pd', the progress is display in console in real-time. 

我的麻煩: 的核心功能,其執行大部分計算的是一種迭代函數,我試圖通過對象「PD」成函數,這樣,當執行子迭代函數完成後,對象'pd'將執行「++」操作。

#include<Windows.h> 
#include<boost/progress.hpp> 
using namespace std; 
using namespace boost; 

void functest(progress_display pdInput){ 
    pdInput++; 
} 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
    vector<int> L; 
    progress_display pd(100); 
    functest(pd); 
    return 0; 
} 

然而,這裏涉及一個錯誤:錯誤C2248: 「推動::不可複製_ ::不可複製:: noncopuable」:無法訪問私有成員(在類中聲明「的boost ::不可複製_ :: noncopyalbe)

我仍然不知道這個錯誤來自實例化對象的錯誤使用,這會發生在所有普通類或它的所有有關的進口Boost庫?

由於任何人誰可以給我更多有用的信息!

回答

1

該類別progress_display不能被複制,所以不要按值作爲參數傳遞它。通過[const]引用或指針傳遞。

+0

來自中國的新手感謝以色列~~~~~~~ – YongYoung

相關問題