13天带你了解C++ ---DAY1 用c++写下第一个程序

1.什么是C++?

         C++是在C语言基础上迭代出的高级语言,它向下兼容C语言,向上进行了扩充,引入了面向对象的概念。所以说C++既是面向过程的语言,又是面向对象的语言。从内容上看,C++相对C语言主要变化是提供了强大的STL库,其对C语言中的栈,堆,队列等数据结构进行了封装,减少了程序员“造轮子”的环节,同时提供了一些算法,方便了日常使用。

2.面向对象和面向过程有区别?

        面向对象主要是将事务看成一个个实体,每个实体都有自己的属性和方法,一件具体事情的完成是由各个对象彼此分工,相互协作来实现的。面向过程是强调过程,它是将事情划分为一步一步的实际操作过程,一般简单逻辑使用面向过程,复杂逻辑使用面向对象编程。

        就拿番茄炒蛋打比方,面向过程就是将做法分为先打碎鸡蛋,然后搅匀,加调味料,下锅炒,捞出,炒番茄直到出汁,混入鸡蛋翻炒,装盘。面向对象就是将番茄,鸡蛋,锅,调味料看成对象,各自都有属性和方法,比如鸡蛋的方法就是打碎,搅匀,锅的方法就是翻炒。如此是不是好理解多了。

        它们有各自的优缺点,面向过程性能高于面向对象,但是可维护性低。而面向对象的封装、继承、多态特性能够使设计出的系统更加灵活。

3.如何写一个C++程序?

#include<iostream>                                                                                                                                                  
   
   int main(){
   
     using namespace std;
     cout<<"hellocpp!"<<endl;
   
     return 0;
  
 }

 输出

4.cin,cout,endl

        endl是C++中的换行符,类似于C语言的"\n";

        cin和cout分别为C++中的标准输入和标准输出,类似于C语言中的scanf和printf函数,使用它们时需要包含头文件<iostream>以及std标准命名空间。

        cin、cout和scanf、printf各自的优缺点

        优点:cin将判断变量类型的工作交给了编译器,而scanf是指针操作,需要程序员给出变量类型,优点是简化了程序员的工作;对类类型的处理更加智能

       缺点:编译器判断变量类型会导致效率降低。

        cout和printf也是具备以上优缺点,同时,cout运算符是可以重载的,这也就意味着将刷新缓冲区的权利交给了程序员,而printf中是没有缓冲区的。幸运的是,C++是兼容二者的,使用哪一个就看个人习惯了。

5.using namespace std是什么玩意?

5.1 namespace (命名空间)

       在c++中函数名变量名都是大量存在的,如果直接放在全局变量中,那么我们自己定义变量名或者类名时大概率会产生命名冲突,所以命名空间这个概念应运而生。实际上命名空间是一个作用域,它将其中的成员函数和变量的作用范围限制在此作用域中,当我们需要使用其中变量时,再把这个命名空间拿过来使用。

    命名空间有以下三种使用方式

namespace test{
    int a=1;
    int b=2;
    int add(int a,int b){
        return a+b;
    }
}

       (1)加命名空间名称以及作用域限定符

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

     (2)使用using将命名空间中的成员引入

using test::b;
int main{
    printf("%d",b);
    return 0;
  }

     (3)使用using namespace将命名空间名称引入

using namespace test;
int main{
    printf("%d",b);
    return 0;
  }

5.2 std

        std是C++中的标准库,里边定义了许多函数,比如cin,cout,容器,迭代器等等。所以上边我们使用cin,cout时需要使用命名空间调用std这个库,想了解更多std库的内容,可以具体搜索。

6.C++中的缺省参数

         缺省参数的意思是在函数声明或者函数定义时,为函数设置一个默认值。如果在调用时未指定实参则使用该初始值。缺省参数也分为半缺省和全缺省。

6.1全缺省参数

#include<iostream>

using namespace std;

void fun(int a=1,int b=2,int c=3){
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
}
int main(){
    fun();

}

调用时完全未赋值,定义时赋值。

6.2半缺省参数

#include<iostream>

using namespace std;

void fun(int a,int b=2,int c=3){
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
}
int main(){
    fun(1);

}

注意:

*半缺省参数必须从右往左依次提供,不能间隔的赋值

*缺省参数不能在声明和定义同时出现

*缺省值必须为全局变量或者常量

        以上就是我们第一天的内容啦,如果有问题的小伙伴们可以在评论区留言,我会很快回复的呦,那么明天再见喽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗二叉树_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值