C++与C语言的不同(一)

来源:互联网 发布:android ndk r9d mac 编辑:程序博客网 时间:2024/05/19 13:59

1>动态分配内存不同

   在C语言中,动态分配内存有很长一段,例如int* p=(int*)malloc(sizeof(int));而在C++中,int  *p=new int;

int *p=(int *)malloc(16*sizeof(int))等价于int *p=new int[16];

2>结构体的定义不同

  在C++中,结构体的内部和C语言不完全一样,c++中结构的成员变量不仅可以是简单的int char.....类型,

还可以在内部定义函数。同时,在定义结构体的时候,不用再写struct student a1,而可以简单的写成student a1;

例子:

#include<iostream>using namespace std;struct student{int age;int score;char name[10];//成员函数void put()//其实是void put(struct student * this) {cout<<age<<" "<<score<<" "<<name<<"这是成员函数的输出"<<endl;}};int main(){student a1;//在c++中,不用写上struct student a1,          // 直接student a1即可;cout<<"请输入学生的年龄,分数,姓名"<<endl;cin>>a1.age>>a1.score>>a1.name;a1.put();//a1.put(&a1);把a1的地址发送给了this指针cout<<a1.age<<" "<<a1.score<<" "<<a1.name<<endl;return 0;}
在成员函数中,对于变量age,score等来说,都是代表的是成员变量,在c++中其实隐藏这一个this指针。

3>定义的函数名称可以相同,只是函数内形参的个数或者类型不同。

#include<iostream>using namespace std;void a1(int a){cout<<"大家好,我是a1函数,我的值是"<<a<<endl;}void a1(int a,int b){cout<<"大家好,我也是a1函数,我的值是"<<a+b<<endl;}int main(){a1(5);a1(7,8);return 0;}

vc6.0演示:

大家好,我是a1函数,我的值是5
大家好,我也是a1函数,我的值是15
Press any key to continue



0 0