4/17c++练习打卡
#include<iostream> using namespace std; class Counter { friend Counter& operator +(const Counter& a, const Counter& b); int num; public: Counter() { num = 0; } Counter(int num_) :num(num_){} //Counter operator +(const Counter& a) //{ // Counter res; // res.num = num += a.num; // return res; //} int display() { return num; } }; Counter& operator +(const Counter& a,const Counter& b) { Counter* res = new Counter; res->num = a.num + b.num; return *res; } void test() { Counter a(5); Counter b(4); Counter c = a + b; Counter d = c + a + b; cout << "c的值是:" << c.display() << " d的值是:" << d.display() << endl; } int main() { test(); return 0; } 8-5 class Mammal { public: virtual void speak() { cout << "哺乳动物说话。。。" << endl; } }; class Dog :public Mammal { public: void speak() { cout << "狗狗说话。。。" << endl; } }; int main() { Dog a; a.speak(); return 0; } 8-6 class Shape { public: virtual double getarea() { return 0; } virtual double getperim() { return 0; } }; class Rectangle :public Shape { public: Rectangle(double c, double d) :a(c), b(d) {} double getarea() { return a * b; } double getperim() { return 2 * (a + b); } private: double a; double b; }; class Circle :public Shape { public: Circle(double a) :r(a) {} double getarea() { return 3.14 * r * r; } double getperim() { return 2 * 3.14 * r; } private: double r; }; void test02() { Rectangle a1(5, 4); Circle a2(5); cout << a1.getarea() << endl; cout << a2.getarea() << endl; cout << a1.getperim() << endl; cout << a2.getperim() << endl; } int main() { test02(); return 0; } 8-7 class Point { friend void test(); double x; double y; public: Point(){} Point(double a, double b) :x(a), y(b) {} Point& operator ++ () { x++; y++; return *this; } Point operator ++(int) { Point tmp; tmp.x = x; tmp.y = y; x++; y++; return tmp; } }; void test() { Point a(5, 6); ++(++a); cout << a.x << "," << a.y << endl; cout << (a++).x << endl; cout << a.x << endl; } int main() { test(); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结