C++第一天

来源:互联网 发布:实用电子产品知乎 编辑:程序博客网 时间:2024/06/06 02:03

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 0
原创粉丝点击