您的位置:首页 > 编程语言 > C语言/C++

C语言中的结构体与C++中的类异同

2015-09-02 09:37 549 查看
从C语言到C++,是编程思想的进步,技术发展的结果吧,所以C++基本上是兼容C的语法的,C++的很多东西也是从C中继承过来的,然后再发扬,C语言的结构体便是C++中类的雏形。

简单的一句话,C语言中的结构体是C++中类的祖先,也可以说C++中的类是C语言中结构体的超集,当然啦,祖先肯定是还没有完全进化的,所以C语言中的结构体的功能相对于C++中的类的功能也相对简单许多。

(1)下面举一个简单的例子,以Point类为例

C语言的结构体可以这样使用:

#include<iostream>

using namespace std;

struct Point

{

intx;

inty;

};



int main()

{

structPoint p;

p.x=9;

p.y=0;

cout<<p.x<<endl<<p.y<<endl;

return0;

}



(2)下面是C++中Point类的程序:

#include<iostream>

using namespace std;

//struct Point

class Point

{

public:

intx;

inty;

};



int main()

{

classPoint p;

p.x=9;

p.y=0;

cout<<p.x<<endl<<p.y<<endl;

return0;

}



从上面可以看出,只是在C结构体的基础上稍稍加一点修改,便可以将C结构体变成C++的类;

(3)相同之处:

C语言的结构体和C++的类在C++程序中是可以通用的,类的内部可以包含函数,其实结构体内部也是可以包含函数的,

#include<iostream>

using namespace std;

struct Point

//class Point

{



intx;

inty;

voidDisplay()

{

cout<<x<<endl<<y<<endl;

}

};



int main()

{

structPoint p;

p.x=9;

p.y=0;

cout<<p.x<<endl<<p.y<<endl;

p.Display(); //调用结构体中的函数

return0;

}

这样使用结构体也是可以的。

(4)不同之处:

可以看出,C语言结构体数据成员未加权限修饰符,默认为public类型,可以直接输入输出,直接对结构体对象的数据成员进行操作。



如上图,而C++中的类成员默认属性为private类型,是不能直接进行操作的。

(4)C语言是面向过程的编程语言,C++是面向对象的编程语言,面向过程和面向对象是一种思想,不是完完全全可以区分开的,它没有一个明确的界限,它是编程语言发展的一个过程,就如同C语言的结构体便是C++中类发展的雏形。



当然了,C++类的用法远远不止这些,这里只是简述一下结构体和类的区别,对于结构体和类的用法这里不详述,想要了解的朋友可以去学习C语言和C++面向对象编程,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: