C++第一天

这篇博客探讨了C语言与C++的区别,强调C++的面向对象特性,如封装、抽象、继承和多态。同时,解释了C语言中数组与指针的关系,以及C++中操作符重载的概念。还提到了C++中的C92标准与C99标准在头文件引用上的差异。
摘要由CSDN通过智能技术生成

Q1:C语言和C++的区别是什么?

      C语言所写出来的程序可以很精练,能够直接的去解决问题。

      C++为了能够解决一些问题则需要绕圈,代码量较大 ,有一些并不是必须的。

      C++和C语言相比,有一个绝对的优势,就是针对不同的对象去做实例化。

Q2:什么是OO思想?

      概括的来说,分而治之,逐步求精。在面向对象的过程中,程序员处理问题时不再面对一个个函数和变量,而是要放眼大局,面对一个个的对象。在面向对象的思想中,任何事物都可以被看做一个对象。一个复杂的模型结构,都是由千千万万的对象组成的。每个对象抽象起来最终可以分为两个要素:属性和行为。每个对象都是一个完整独立的个体,它是由相关的属性和行为组合,与外界分离。

Q3:OO思想特点有哪些?

      1、封装:意味着把对象的属性和方法结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。封装是面向对象思想描述的基础,从此程序员面对的就不再是许多复杂的函数和过程实现,而是少数具有行为能力的个体实例。

      2、抽象:抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。为了是某些必要的信息得以顺利的交流,设计者必须指定一个抽象,得到所有参与活动的有效个体支持的协议。

      3、继承:子类对象拥有与其基类相同的全部属性和方法。

      4、多态:是指在基类中定义的属性和行为被子类继承后,可以具有不同的数据类型或者表现行为等特性。

Q4:怎样用C语言对定义一个存储着n个元素的整型数组求和?

#include<stdio.h>

int addArray(int array[],int n);

int main()
{
        int data[]={0,1,2,3,4,5,6,7,8,9};
        int size = sizeof(data)/sizeof(data[0]);
        return 0;
}

int addArray(int arrray[],int n)
{
        int sum = 0;
        int i;

        for(i=0;i<n;i++)
        {
                 sum += array[i];
        }
        
        return sum;
}

      在《C专家编程》中作者用大篇幅对C的数组和指针做了对比来跟我们说数组和指针它们的关系很复杂。那么我们来探究一下在该程序中数组与指针的关系:

#include<stdio.h>

int addArray(int array[],int n);

int main()
{
        int data[]={0,1,2,3,4,5,6,7,8,9};

        printf("data:%d\n",sizeof(data));

        int size = sizeof(data)/sizeof(data[0]);
        return 0;
}

int addArray(int array[],int n)
{
        int sum = 0;
        int i;

        printf("array:%d\n",sizeof(array));

        for(i=0;i<n;i++)
        {
                 sum += array[i];
        }
        
        return sum;
}

      输出:data:40

                  array:4

                  45

      数组名是数组首地址,数组与指针具有相关性,不完全等同。数组在实参传递过程中,地址被当成指针传递过来。此时,将函数的参数声明为数组和声明为指针是一样的。

      如何用C++解决上述整型数组求和的问题?

#include<iostream>

using namespace std;

int addArray(int *array,int n);

int main()
{
        int data[]={0,1,2,3,4,5,6,7,8,9};
        int size = sizeof(data)/sizeof(data[0]);

        cout<<"结果是"<<addArray(data,size)<<endl;

        return 0;
}

int addArray(int *arrray,int n)
{
        int sum = 0;
        int i;

        for(i=0;i<n;i++)
        {
                 sum += *array++;
        }
        
        return sum;
}

       “<<”是C语言里面的位运算的左移操作符,难道在C++里面修改了规则?事实上并非如此,它只不过体现了C++的一个特点:支持重载。重载事实上就是允许我们按照不同的方式使用同一个操作符。

Q5:针对头文件,C++中的C92标准与C99标准有什么不同?

      C92标准:#include<iostream.h>

      C99标准:#include<iostream>

                            using namespace std;

      using namespace std;是C++标准库所使用的所有标识符(即类、函数、对象等的名称)都是在同一个特殊的名字空间(std)中来定义的。如果没有使用这条指令,我们将使用std::cout和std::endl这样的语法来调用输出流对象。那么,什么是输出流?其实就是C++中的一个概念。例如:数据可以从键盘流向程序,又可以从程序流向屏幕,打印机等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值