C++和C的不同以及面向对象的了解

(1)C语言是面向过程的程序设计,主要考虑如何通过一个过程,对输入进行处理得到一个输出,

C++是面向对象的程序设计,对于C++,首先考虑的是如何构造一个对象模型,让这个模型配合对应问题,这样可以获取对象信息状态得到输出。

(2)C++比C的增强点

    • 命名空间
    • 变量检测加强
      int g_var;
      int g_var =210;
      int main(int argc,char *argv[]){
          printf("g_var = %d\n",g_var);
          return 0;
      }

                在C语言中,输出正常:210;

                在C++中,运行出错,变量重定义;

    • struct加强:C语言struct定义了一组变量的合集,C编译器不认为这是一种新的类型;C++编译器中的struct是一个新类型的定义声明;
      struct Student{
          char name[100];
          int age;
      }
      int main(int argc,char *argv[]){
          Student sl={"wang",1};
          //C语言中必须前面加上 struct 关键字;
          //struct Student sl={"wang",1};
          // struct Student s2={"wang2",2};
          Student s2={"wang2",2};
          return 0;
      }

面向对象:把数据和对数据的操作方法放在一起,做成一个相互依靠的整体,称之为对象,对同类对象抽象出共同特性,类中大多数数据只能用本类的方法进行处理;

封装:将一类事物的属性和行为抽象为一个类,使属性私有化,行为公开化,提高数据隐蔽性,复用性高。封装隐藏了类的实现细节和成员数据,实现了代码模块化,如类里面的 private 和public;

继承:进一步将属性和行为抽象为一个父类,而每一个子类拥有父类的行为和属性也有自己的行为和属性。继承使得子类可以复用父类的成员和方法,实现了代码重用;

多态:是“一个接口,多个实现”,通过父类调用子类的成员,实现了接口重用,如父类的指针指向子类的对象。

 

C++是不是类型安全的?

不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值