2014-04-15 31 views
0

我具有以下結構,傳遞fstream的作爲結構部件的功能

struct option 
{ 
    std::fstream fpointer; 
    char* clifn; 
}; 

欲這種結構作爲參數傳遞給另一個功能(另一種方式是通過個別元件和fpointer作爲參考),它傳遞給函數拋出一個編譯器錯誤

error C2248: 'std::basic_fstream<_Elem,_Traits>::basic_fstream' : cannot access private member declared in class 'std::basic_fstream<_Elem,_Traits>' 

是否有任何的方式來傳遞struct成員的std :: fstream的對象起作用。

+2

我想你是通過值'選項',你應該通過引用傳遞它。 fstream的副本被禁用。並向我們​​展示您的函數聲明。 – billz

+0

感謝@billz它的工作 – Meluha

回答

6

Streams are not copyable所以struct option因此是不可拷貝,因爲它具有一個不可複製件(fpointer)。通過struct option作爲參考以避免複製:

void some_function(option& a_option) 
{ 
}