C++相对于C的区别中的几点

参加了两次学校的程序设计大赛,第一次都用的C,第二次用的C++。而第一次没有做出题目,第二次做出了4道。
对比之后,我便开始思考C++相对于C的不同之处。
1、C++可以动态分配内存
    在C中,当我们需要输入一个数组,但是数组的长度不知道的情况下,我们会怎么做?通常我会选择一个可能出现最大的长度MAX,但是这完全不会考虑到特殊情况的:首先这个最大长度还不够大怎么办?第二如果实际输入的元素个数远远没有设置的那么多怎么办?内存不是有一个很大的空洞被浪费了?
    而这一点在C++确实可以避免的,通常可以预先定义一个数组的首地址,但不用给他赋值,而在之后可以输入实际的数组长度,确定了之后再确定数组的长度。比如:

int *Num;
int Length;
cin>>Length;
Num = new int[Length];

    这样应该能够解决上述的问题。

2、C++类的机制

    这一点应该不用说太多了,这个是应该最大的不一样吧?在C++类的机制下,将函数变量完全的封装起来,不需要理会其中的运行过程,这大大简化了我们的工作过程。在main()中只有一点的申明和部分的调用就可以了,这个比起C的结构体应该更加的方便吧。

3、操作符可以重载

    最典型的>>和<<两个操作符,可以用来输入或者输出不同类型的参数(就本人而言经常使用operator+这样的重载函数),而在C中,必须要指定操作对象的数据类型,否则是不可以直接操作的,比如说:

int Num = 10;
printf("%d",Num);
//这里必须确定是%d的格式

而在C++中:

int Num = 10;
string strName  = "Xiaoming";
cout<<Num<<endl;
cout<<strName<<endl;    //这里不需要管他的输出格式的

4、内存管理更加安全

     在C++中,我们可以在需要用到变量的时候采取创建它,比如

for(int i = 0; i <100;i++)
{.....;}

   而这样的定义在C中式不允许的。

    同样的在类的情况下,有构造函数和析构函数,当相应的类被创建的时候,就会调用构造函数,在其生命周期结束的时候就会调用析构函数将其摧毁。相比之下,C++的安全性应当是很高的。

 

大体上我的所得就是这么一些吧,都是自学没有高人指点,算是一个C++初步学习结束的一个总结吧。

转载于:https://my.oschina.net/flame804/blog/186474

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值