fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. class Shape {
  8. protected:
  9. float width, height;
  10. public:
  11. Shape(float width = 0, float height = 0) {
  12. this->width = width;
  13. this->height = height;
  14. }
  15. friend ostream &operator<< (ostream &os, Shape &s) {
  16. os << s.width << " x " << s.height;
  17.  
  18. return os;
  19. }
  20. };
  21. class Triangle: public Shape {
  22. private:
  23. public:
  24. Triangle(float width = 0, float height = 0):Shape(width, height) {
  25. }
  26. void nhap() {
  27. cout << "Nhap canh day: "; cin >> width;
  28. cout << "Nhap chieu cao: "; cin >> height;
  29. }
  30. float area() {
  31. return 0.5 * width * height;
  32. }
  33. };
  34. class Rectangle: public Shape {
  35. private:
  36. public:
  37. Rectangle(float width = 0, float height = 0):Shape(width, height) {
  38. }
  39. float area() {
  40. return width * height;
  41. }
  42. void nhap() {
  43. cout << "Nhap chieu dai: "; cin >> width;
  44. cout << "Nhap chieu rong: "; cin >> height;
  45. }
  46. };
  47.  
  48. int main () {
  49. Triangle tamgiac;
  50. Rectangle chunhat;
  51.  
  52. cout << "Nhap kich thuoc tam giac:\n"; tamgiac.nhap();
  53. cout << "Nhap kich thuoc cua hinh chu nhat:\n"; chunhat.nhap();
  54.  
  55. cout << "\n> Tam giac kich thuoc " << tamgiac << ". Co dien tich " << tamgiac.area();
  56. cout << "\n> Hinh chu nhat kich thuoc " << chunhat << ". Co dien tich " << chunhat.area();
  57.  
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0.01s 5524KB
stdin
2 6
4 8
stdout
Nhap kich thuoc tam giac:
Nhap canh day: Nhap chieu cao: Nhap kich thuoc cua hinh chu nhat:
Nhap chieu dai: Nhap chieu rong: 
> Tam giac kich thuoc 2 x 6. Co dien tich 6
> Hinh chu nhat kich thuoc 4 x 8. Co dien tich 32