Cplusplus说“ostream对象(* this)”,但我不明白。返回ostream对象的指针?我尝试用cout函数打印这个值,但我总是打印0.这个值怎么有用呢?
答案 0 :(得分:2)
this
是指向当前调用对象的指针。
*this
取消引用指针。
这通常用于“链接”。 例如:
cout<<1<<2<<3<<4<<5;
运营商LT;&LT;在cout中调用: COUT&LT;&。1 将打印1并返回cout,然后我们将:
cout<<2<<3<<4<<5;
等等。
答案 1 :(得分:0)
通常在C ++中,方法的类不必返回特定值,例如本例(或者使用string
),返回*this
。
C ++中的每个对象都可以通过一个名为this指针的重要指针访问自己的地址。 this指针是所有成员函数的隐式参数。因此,在成员函数内部,这可以用于引用调用对象。
感谢this
,您可以使用方法链接,这是一个示例:
char c[]="This this this";
std::cout << (std::cout.write(c,4) << " hello ") << std::endl;
输出:
This hello 0x600e08
在这个例子中,我故意使用操作符链接,但它与方法相同。
0x600e08
是您basic_ostream
对象的地址。