gpt4 book ai didi

c++ - 在 C++ 中重载运算符 <<

转载 作者:行者123 更新时间:2023-11-28 02:43:34 25 4
gpt4 key购买 nike

<分区>

我正在尝试重载 C++ 中的运算符 <<。这是我的代码:

toString 和 << 的重载都在 VipCustomer 的 .cpp 文件中

string VipCustomer::toString(){
return "VIP Name: " + this->m_cuName + " Bill: "
+ to_string(this->m_cuCurrentBiil);
}

ostream& operator<< (ostream& out, VipCustomer *obj){
return out << obj->toString();
}


int main(){
VipCustomer * cus2 = new VipCustomer("bob", 10);
cout << cus2 << endl;
}

我得到的输出是 cus2 的地址,我做错了什么?

关于@T.C 的评论改为:

int main (){
VipCustomer cus2("bob", 10);
cout << &cus2;
}

在cpp文件中:

string VipCustomer::toString(){
return "VIP Name: " + this->m_cuName + " Bill: " + to_string(this->m_cuCurrentBiil);
}

ostream& operator<< (ostream& out, VipCustomer &obj){
return out << obj.toString();
}

在 .h 文件中:

class VipCustomer :public Customer
{
public:
VipCustomer();
VipCustomer(std::string name ,int bill);
~VipCustomer();

void addtoBill(int amount);
string toString();

};

还是一样的问题。

25 4 0
文章推荐: c++ - 如何使用 CMake 订购/设计使用更高的共享库包括
文章推荐: c++ - 在 C++ 中使用 getline 使代码无限运行
文章推荐: html - 如何使用 ng-option 在