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++中的一个概念。例如:数据可以从键盘流向程序,又可以从程序流向屏幕,打印机等等。