C++入门

什么是C++?

C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式 等。熟悉C语言之后,对C++学习有一定的帮助。

C++和C语言的关系?

简单来说,C++兼容C,C是C++的基础。C代码可以在.cpp文件中运行,并且C和C++在语法上有许多相似的地方,C++对C的一些语法进行了改进,补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的。

那么C++到底在C上有哪些方面的改进?

第一,在C中,命名冲突的问题非常明显,当有重名的变量或函数时,只能将其中一个名字更改

#include <stdlib.h>

int main()
{
    int rand=1;
    printf("%d\n",rand);
    return 0;
}

显然,此时运行编译器会报错,原因就是库里面已经有了定义的rand函数,而主函数里面的rand变量必然会引起冲突,C语言如果想让程序正常运行,只能改变主函数中的rand变量名。

C语言没办法解决类似这样的命名冲突问题,而C++就不一样了,C++提出了namespace来解决。后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。这样,即使有重复的函数名或变量名,C++仅需要通过在指定的namespace里面找即可。

#include <stdlib.h>
namespace zz
{
    int rand=1;
}

int main()
{
 
    printf("%d\n",zz::rand);
    return 0;
}

第二,C每次输出打印都需要传指定的类型,如:整形用%d,字符串用%s等。

使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型。

#include <iostream>
using namespace std;
int main()
{
   int a=1;
   double b=1.1;
   char c='a';
   
   cout<<a<<endl;
   cout<<b<<c<<endl;
   return 0;
}

这样无疑是给我们带来了许多方便,但当遇到对格式有严格要求时,C++的cout无法做到控制间距,这时只能使用C的printf来控制间距。

第三,由于同名函数没办法区分,故C语言没办法支持函数重载。而C++是通过函数修 饰规则来区分,只要参数不同,修饰出来的名字就不一样,就支持了重载。即C++在面对同名函数时会通过参数的匹配来调用更匹配的函数。

例如:当C实现Add函数时,不同类型的返回值和参数的函数名不能相同。C++不仅支持相同函数名,还能正确调用各个函数,因为它可以通过函数重载让编译器自己调用更匹配的函数。

//C语言版本
int Add1(int a, int b)
{
     return a + b;
}
double Add2(double a, double b)
{
     return a + b;
}
//C++语言版本
int Add(int a, int b)
{
     return a + b;
}
double Add(double a, double b)
{
     return a + b;
}

此外,C++还有其他一些改进的地方,比如:作用 域方面、IO方面、函数方面、指针方面、宏方面等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值