我通常将我的课程保存在2个文件中:class.h和class.cpp

我想做类似cout << myclass的事情;

我发现像这样的例子:

friend ostream& operator<<(ostream &os, XXLint)
{ // do stuff
}

但是上面的函数在声明之后就被显式了。

我应该如何在myclass.h中声明它以便能够在myclass.cpp中使用它? 整个函数的头文件也会位于.cpp文件中(例如:myclass :: myclass())。

===============>>#1 票数:4 已采纳

在标题的类定义中:

struct Foo
{
  int a, b;
  friend std::ostream& operator<<(std::ostream &os, const Foo&);
};

在实现中(例如.cpp文件):

std::ostream& operator<<(std::ostream &os, const Foo& f)
{
  return os << f.a << " " << f.b;
}

  ask by taigi tanaka translate from so

未解决问题?本站智能推荐:

3回复

如何在C ++ 11或更高版本中使用带有类和重载<<操作符的枚举?

我正在学习C ++,这是我的代码: 所以这行: 给出此错误: 操作符<<操作数的不匹配类型为basic_ostream和Genre。 所以我尝试了: 在Class Book的公开部分,出现错误: g中属于非类类型Genre的成员getGenr
3回复

简单的c ++运算符重载帮助

如何重载<<操作符? 从我收到的错误中,似乎std::cout不知道如何使用<< 。 这是在一个类中: 我收到error: no match for 'operator<<' in 'std::cout << test'这似乎没有意
2回复

C ++重载运算符解析

g ++ 4.4.5 我有一个扩展类std :: ofstream的类,以添加一些功能。 基本上,您可以将单个位写为bool,然后使用父<<方法将每组8位写为bool。 我必须在这里使用此调用语法,因为我正在调用基本方法,但是在使用此类的实际主方法中,我尝试调用以下行
2回复

运算符<<,>>对于特定类的重载失败

这些是我为该结构编写的运算符: 我得到的部分错误: 我在客户端模块(主要)中使用结构的部分方式: 注意:字段字符是指分配的向量堆 客户端模块(主)中的变量定义: 我将这个定义用于赋值运算符: 更改为删除[] ...; 删除数组的正确语法,然后将“
3回复

C ++链接器错误iostream重载

尝试编译包含这两个文件的程序时出现2个链接器错误(引起问题,尤其是粗体的行) 我是C ++的新手,请原谅我的无知。 Assignment1.obj:错误LNK2001:无法解析的外部符号“ public:class Vector __thiscall Vector :: operat
6回复

重载处理std :: endl?

我想定义一个MyStream类,以便: 给出输出 基本上,我想在前面插入一个“[blah]”,然后在每个非终止 std::endl之后插入? 这里的困难不是逻辑管理,而是检测和重载std::endl的处理。 有一种优雅的方式来做到这一点? 谢谢! 编辑:我不需
1回复

如何在C ++中创建“默认”流插入运算符?

我有一个类似于boost :: any的类,因为它是一个模板化的容器类。 我想有一个方法将包含的值写入字符串。 但是,如果包含的类型不提供流插入操作符,我希望我的方法返回一些默认的tring而不是无法编译。 下面就像我来的那样接近,并且应该清楚我要做的事情: 这很有效,但有一些警告
1回复

重载Iostream C ++

我正在编写仅矩阵标头的matrix3x3实现,我想要独立并且不依赖其他标头,但我也写了vector3标头。 当前,我希望它重载ostream <<运算符,但我不想在其中包含iostream 。 如果包括了ostream ,是否可以使重载为可选并且可以工作,并且如果不包括o
2回复

从控制台读取并创建类实例

我仍在学习C ++,但我不知道该怎么做。 我有一个学生班,有以下字段:姓名,身份证等。 我想让用户通过cin >> aStudent输入所有信息。 这太奇怪了(在Java中没有匹配项)我怎么能重载>>,所以它将那样工作?
2回复

如何重载<<运算符以输出作为类成员的向量

我正在尝试使用<<操作符来输出作为类的私有成员的向量。 编译器不会让我直接访问向量,因为它们是私有的,但也不会让我访问返回向量的公共成员函数。 如何使<<操作符输出私有成员向量的所有内容? 这是我的课: 这是重载的<<函数: