所以我正在学习操作重载。我试图重载〈〈来打印对象属性。在我的例子中,Properties是一个继承了person类的public部分的类。这是我所拥有的:
class Person {
private:
string name;
int egn;
string adress;
public:
friend ostream& operator << (ostream& out, const Person& c);
}
ostream& operator << (ostream& out, const Person& c)
{
out << "Person name: " << c.name << "\n" << "Person egn: " << c.egn;
return out;
}
int main()
{
Properties* person_obj_1 = new Properties();
person_obj_1 = add_person(person_obj_1);//Add some values
cout << person_obj_1 << "\n";
}
而我得到的输出是000001CE89252130,这不是我想要的,我需要打印我的属性的实际值,我做错了什么?
1条答案
按热度按时间toiithl61#
我做错了什么?
您正在打印
Properties*
而不是Person
对象。也就是说,要获得预期的结果,您需要在Person
对象上使用cout
,您已经为该对象重载了operator<<
,而不是指针Properties*
。