Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 打印操作员过载失败?_C++_C++11_Operator Overloading - Fatal编程技术网

C++ 打印操作员过载失败?

C++ 打印操作员过载失败?,c++,c++11,operator-overloading,C++,C++11,Operator Overloading,我在实践C++基本继承概念,遇到打印自定义类对象的需要,并编写了重载,严格遵循指南,但仍然没有注册使用新运算符进行打印(该运算符在类之外以以下方式定义,因为它不是类成员 std::ostream & operator <<( std::ostream &os, const Choco &c ) { return os << c.full; } 应该有一个返回语句,其表达式类型为bool,或者应该在基类和派生类中声明返回类型为void。R

我在实践C++基本继承概念,遇到打印自定义类对象的需要,并编写了重载,严格遵循指南,但仍然没有注册使用新运算符进行打印(该运算符在类之外以以下方式定义,因为它不是类成员

std::ostream & operator <<( std::ostream &os, const Choco &c ) 
{
    return os << c.full;
}

应该有一个返回语句,其表达式类型为
bool
,或者应该在基类和派生类中声明返回类型为
void

Related:Related:@jamarcus_13此运算符bool operator这并没有解决问题,但该类的逻辑是由内而外的。如果一个人吃了巧克力e、 吃饱的是人,而不是巧克力。
std::ostream & operator <<( std::ostream &os, const Choco &c ) 
{
    return os << c.full;
}
bool eat() {
    full = true;
}