gpt4 book ai didi

c++ - 使用初始化列表初始化类中的 std::ofstream

转载 作者:行者123 更新时间:2023-11-30 02:53:05 35 4
gpt4 key购买 nike

我想在构造函数中使用初始化列表初始化一个私有(private)的std::ofstream(比如,到一个在main 中打开的文件)。我有以下代码:

class MyClass{
std::ofstream ofs;
public:
MyClass(const std::ofstream &ofs): ofs(ofs) { }
};

我得到以下编译错误:

error C2248: 'std::basic_ofstream<_Elem,_Traits>::basic_ofstream' : cannot access private member declared in class 'std::basic_ofstream<_Elem,_Traits>'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\program files (x86)\microsoft visual studio 11.0\vc\include\fstream(1034) : see declaration of 'std::basic_ofstream<_Elem,_Traits>::basic_ofstream'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]

这里发生了什么?

最佳答案

看看cppreference

basic_ofstream( const basic_ofstream& rhs) = delete;    (5)     (since C++11)

不可能复制构造一个basic_ofstream

可能您使用的是 c++11 之前的编译器,它在库中被标记为 private

关于c++ - 使用初始化列表初始化类中的 std::ofstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325364/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com