类和对象以及抽象类

  • 类和对象的区别在于类是对一个事物的描述和规定,它是对一个事物的蓝图,并不是一个事物的具体实现。而对象是对事物的具体实现。比如,创建一个类,类名称为小汽车,这个类中会规定小汽车有一个方向盘,四个轮子,可以在路上行驶。对这个类进行实例化,也就是创建对象的过程就是实实在在创造出一辆可以开的车,这个车满足类中对小汽车的定义。
    Car myCar = new Car();
  • 抽象类是不能有实例的,因此,抽象类借助指针实例化
    Shape * shape = new Square(5);
    上面这句话也可以写成
    Shape * shape;
    Square square = new Square(5);
    shape = & square;
    意为创建一个Shape类型的变量 * shape,这个变量是一个指针,指向实例化对象square
#include <iostream>
using namespace std;

class Shape
{
public:

  virtual double area() = 0;
};

class Square : public Shape
{
public:
  double side;
  
  Square(double side) : side(side) {}
  
  double area()
  {
    return side * side;
  }
};

class Triangle : public Shape
{
public:
  double base;
  double height;
  
  Triangle(double base, double height) :
    base(base), height(height) {}
  
  double area()
  {
    return 0.5 * base * height;
  }
};

int main()
{
  
  Shape *shapes[] =
  {
    new Square(5),
    new Triangle(8,10),
    new Square(7),
    new Triangle(3,4)
  };
  
  for (int i = 0; i < 4; i++)
    cout << "Shape " << i << ": " << shapes[i]->area() << endl;
   
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值