C与C++的最本质的区别是:C是面向过程的编程语言,C++是面向对象的编程语言。更深入的分析两种语言的区别:在C语言中,数据和函数是分开声明的,数据和函数之间不存在直接的关联,函数所处理的数据是不属于函数的外部数据,需要通过特定的方式传递给函数,例如:数据作为函数的参数传递给函数,供函数来处理。而在C++语言中,可以将数据和函数声明为一个抽象数据类型——类(class)。类声明了数据以及对这些数据的操作(函数)。
例如一个简单的学生信息管理系统中,包含学生的姓名和学号,以及对学生姓名和学号的操作。
在C语言中,可以进行如此定义。
struct Student //Student结构体存储学生的姓名和学号
{
char *szName; //定义一个指针变量,指向存储学生姓名的内存
int iNumber;
}
void Student_Name(Student &s,char *Name) //设置学生的姓名
{
if(s.szName!=NULL) //如果学生姓名不为空,释放存储学生姓名的内存
{
free(s.szName);
s.szName=NULL;
}
s.szName=Name; //设置新的姓名
}
void Student_Number(Student &s,int Num) //设置学生的学号
{
s.iNumber=Num;
}
在C++语言中,可以将学生的姓名和学号,以及相应的操作封装到类中,可以进行如此定义。
class Student //定义学生类
{
public:
Student():szName(NULL),iNumber(0){} //初始化学生姓名为空
~Student()
{
if(szName!=NULL) //如果学生姓名不为空,释放存储学生姓名的内存
{
Free(szName);
szName=NULL;
}
}
void Student_Name(char *szName); //设置学生的姓名
void Student_Number(int Num); //设置学生的学号
private:
char *szName;
int iNumber;
}