gpt4 book ai didi

c++ - 运算符重载和对象引用

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:38 25 4
gpt4 key购买 nike

我有一些代码重载了 << 运算符来打印出一些数据我使用了这个网站并且几乎复制了代码

https://msdn.microsoft.com/en-us/library/1z2f6c2k.aspx

我可以让代码正常工作,但我给出的例子不行。

正如您在链接中看到的:

// overload_date.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

class Date
{
int mo, da, yr;
public:
Date(int m, int d, int y)
{
mo = m; da = d; yr = y;
}
friend ostream& operator<<(ostream& os, const Date& dt);
};

ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}

int main()
{
Date dt(5, 6, 92);
cout << dt;
}

但是对于我的示例,我创建了指向对象的指针而不是直接创建值,所以我会得到如下内容:

Item *it;
it = new Screwdriver("big", 11);
cout << it;

但这只会打印出指针!我该如何取消引用呢?或者这是最好的方法吗?

最佳答案

见下面的代码:

Item *it;
it = new Screwdriver("big", 11);
cout << *it;

C++ 有取消引用运算符 * 来从指针指向它指向的值。

关于c++ - 运算符重载和对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com