class Dogpublic Dogint value = 0 m_valuevalue void show cout value m_value endl; Dog &operator=const Dog &dg; Dog operator+const Dog &dg; friend Dog operator+const Dog &dg1 const Dog &dg2; f
class Dog { public: Dog(int value = 0) : m_value(value) { } void show() { cout << "value " << m_value << endl; } Dog &operator=(const Dog &dg); Dog operator+(const Dog &dg); friend Dog operator+(const Dog &dg1, const Dog &dg2); friend ostream &operator<<(ostream &out, const Dog &dg) { out << dg.m_value; return out; } int m_value; };
// 解释每行代码
// 定义一个名为 Dog 的类 // 类的成员变量为一个整数 m_value
// 构造函数,可以创建一个 Dog 对象,并将传入的参数赋值给 m_value Dog::Dog(int value = 0) : m_value(value) { }
// 成员函数,打印出 m_value 的值 void Dog::show() { cout << "value " << m_value << endl; }
// 重载赋值运算符,用于将一个 Dog 对象的值赋给另一个 Dog 对象 Dog& Dog::operator=(const Dog &dg);
// 重载加法运算符,用于将两个 Dog 对象相加,并返回一个新的 Dog 对象 Dog Dog::operator+(const Dog &dg);
// 重载加法运算符,用于将两个 Dog 对象相加,并返回一个新的 Dog 对象 friend Dog operator+(const Dog &dg1, const Dog &dg2);
// 重载输出流运算符,用于将 Dog 对象的值输出到流中 friend ostream& operator<<(ostream &out, const Dog &dg) { out << dg.m_value; return out;
原文地址: http://www.cveoy.top/t/topic/iJ0A 著作权归作者所有。请勿转载和采集!