C语言中有没有对应Java的toString()方法的等效函数或操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计287个文字,预计阅读时间需要2分钟。
我想要控制写入流的输出内容,即cout,以获取自定义类的对象。在C语言中,这可以通过覆盖toString()方法实现,类似于Java中的类实现。在C++中,你可以重载运算符符对于ostream和你的自定义类:class A {public: in < class A {
public:
int i;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.i << ")";
}
这样您就可以在流上输出类的实例: A x = ...;
std::cout << x << std::endl;
如果您的操作符<<想要打印出A类的内部,并且真正需要访问其私有和受保护的成员,您也可以将其声明为友元函数: class A {
private:
friend std::ostream& operator<<(std::ostream&, const A&);
int j;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.j << ")";
}
本文共计287个文字,预计阅读时间需要2分钟。
我想要控制写入流的输出内容,即cout,以获取自定义类的对象。在C语言中,这可以通过覆盖toString()方法实现,类似于Java中的类实现。在C++中,你可以重载运算符符对于ostream和你的自定义类:class A {public: in < class A {
public:
int i;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.i << ")";
}
这样您就可以在流上输出类的实例: A x = ...;
std::cout << x << std::endl;
如果您的操作符<<想要打印出A类的内部,并且真正需要访问其私有和受保护的成员,您也可以将其声明为友元函数: class A {
private:
friend std::ostream& operator<<(std::ostream&, const A&);
int j;
};
std::ostream& operator<<(std::ostream &strm, const A &a) {
return strm << "A(" << a.j << ")";
}

