C++ 作为朋友处理运算符重载方法
我试图创建简单类并重载它的一些运算符,但一开始就失败了,下面是我的代码:C++ 作为朋友处理运算符重载方法,c++,C++,我试图创建简单类并重载它的一些运算符,但一开始就失败了,下面是我的代码: #include <iostream> class Person { char *firstName; char *lastName; int age; friend std::ostream &operator<<(std::ostream &, const Person &); public: Person() : firstNa
#include <iostream>
class Person
{
char *firstName;
char *lastName;
int age;
friend std::ostream &operator<<(std::ostream &, const Person &);
public:
Person() : firstName("Piotr"), lastName("Tchaikovsky"), age(10) {}
Person(char* f, char* l, int a)
{
this->firstName = f;
this->lastName = l;
age = a;
}
std::ostream &operator<<(std::ostream& out, const Person &p)
{
out << p.firstName << " " << p.lastName;
return out;
}
};
int main()
{
Person a;
getchar();
getchar();
}
#包括
班主任
{
char*名字;
char*lastName;
智力年龄;
friend std::ostream&operatorlastName=l;
年龄=a;
}
std::ostream&operator您将friend
函数声明为全局非成员函数。然后定义一个成员函数
移动运算符的定义或检查此问题和答案:第二个运算符我看到,这不应该是成员函数,我现在修复了它,非常感谢@cdummie如果你接受(有一个按钮)这个答案,它将不再显示为一个未回答的问题。对不起,我本来打算这么做的,但我不小心忘了。
class Person
{
...
friend std::ostream &operator<<(std::ostream &, const Person &);
...
};
std::ostream &operator<<(std::ostream& out, const Person &p)
{
out << p.firstName << " " << p.lastName;
return out;
}
class Person
{
...
friend std::ostream &operator<<(std::ostream &, const Person &)
{
out << p.firstName << " " << p.lastName;
return out;
}
...
};