- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个看起来像这样的结构:
sturct person
{
string surname;
person(string n) : surname(n) {};
}
我需要重载 operator<<
对于 std::ostream
和 person
.我写了这个函数:
std::ostream operator<<(std::ostream & s, person & os)
{
s << os.surname;
return s;
}
但我收到此错误:
/usr/include/c++/4.6/bits/ios_base.h|788|error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private|
/usr/include/c++/4.6/bits/basic_ios.h|64|error: within this context
/usr/include/c++/4.6/ostream|57|note: synthesized method ‘std::basic_ios::basic_ios(const std::basic_ios&)’ first required here |
最佳答案
std::ostream
不可复制构造,当您按值返回时,您正在复制构造。虽然return value optimization意味着实际上可能不会进行复制,编译器仍然要求可以进行复制。
此运算符的规范返回值是非常量引用:
std::ostream& operator<<(std::ostream& o, const SomeType& t);
关于c++ - 'std::ios_base::ios_base(const std::ios_base&)' is private' 错误,同时为 std::ostram 重载运算符 <<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089547/
#include #include #include using namespace std; class Logger { private: ofstrea
FatalMessageAssembler是一个通过 FatalMessageAssembler& operator FatalMessageAssembler& operator::basic_i
我正在尝试将一个复杂对象保存到一个文件中,我正在像这样在复杂对象中重载 > 运算符 class Data { public: string name; double rating; f
当我尝试执行以下操作时,标题中出现错误。 class Test { private: std::ifstream File; public: Test(); }; 测试::测试() {
我有一个看起来像这样的结构: sturct person { string surname; person(string n) : surname(n) {}; } 我需要重载 ope
答: std::ofstream("test.txt", std::ios_base::app); 乙: std::ofstream("test.txt", std::ios_base::app|st
头文件中可以看出 , 类 ios_base源自 template class _Iosb ,其中以下 static const variables定义: static const _Fmtflag
这是来自MSDN的文档:ate,在首次创建控制对象时寻找流的末尾。 trunc,在创建控制对象时删除现有文件的内容。 我只是无法理解它们之间的区别,以下两个代码片段的行为相同(它们在插入之前清除内容)
我有一个返回 unique_ptr 的 API给 API 用户。我想知道用户何时完成此流,以便我可以对他们刚刚写入的文件采取进一步的操作。必须关闭该文件,因为即将重新挂载分区。 这可能是这个问题的错误
27.6.3.4.2 Buffer management and positioning pos_type seekoff(off_type off, ios_base::seekdir way,
我一直在寻找将字符串转换为 int 的最佳方法,但遇到了一个我不理解的函数: template bool from_string(T& t, const std::
std::ios_base::ate(例如 std::ios_base::app 除外)和 std::的意义何在ios_base::trunc(例如std::ios_base::out除外)? 我应该
在 std::ios_base::out 中使用 std::ios_base::trunc 标志的目的是什么?我在很多例子中都看到了这一点。 我认为标准保证 std::ios_base::out 也会
对于我的一项作业,我被告知使用 cin.clear(ios_base::failbit) 来设置 failbit。我想知道,cin.clear(ios_base::failbit) 和 cin.set
我已经实现了查找最大值和最小值的函数。但我得到以下错误代码: [错误] 从“std::ios_base& (*)(std::ios_base&)”到“int”的无效转换 [-fpermissive]
ios_base 类中的静态常量在创建时进行初始化,这对于常量来说是有意义的。非常量静态成员变量是否可以用相同的方式初始化,或者这个概念是否只允许常量静态成员使用? 对于带有 gnu 编译器的非常量静
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
这个函数有两个不同的引用: 一个用 const 声明的 here ; 还有一个没有 const here ; 哪个是正确的? 最佳答案 标准说 (27.5.3.3) 定义应该是: locale get
我正在使用 libcurl 下载序列化代码并将其打开,但是,我收到一个错误,看起来 fstream 丢失了,但它包含在内。我环顾四周,但很少发现错误。下面是错误和代码。错过了什么? 编译错误输出 g+
我想知道为什么下面的代码没有按预期工作: #include #include using namespace std; int main(){ int n; string s;
我是一名优秀的程序员,十分优秀!