C语言中的结构体与C++中的类异同
来源:互联网 发布:魔兽大脚mac版7.0更新 编辑:程序博客网 时间:2024/06/05 09:02
从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++面向对象编程,
- C语言中的结构体与C++中的类异同
- 结构体在C与C++中的异同
- C语言中的联合体与结构体
- C++、 C 中的结构体、联合和枚举 异同
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构体
- C语言中的结构体
- c语言中的结构体
- C语言中的结构
- C语言中的-------结构
- C语言中的-------结构
- C语言结构体中的函数指针与函数
- c语言结构体中的函数指针与函数
- iOS截屏
- Android 自定义控件 轻松实现360软件详情页
- js实现获取当前时间的前几天日期
- sublimetext激活
- 关于STL扩展库的思考
- C语言中的结构体与C++中的类异同
- tp上mongo的配置
- 人脸识别核心算法
- 博客之初始感悟篇
- 审美的变迁 回顾Android 系统进化史
- Android Gradle 是项目中的构建神器
- 轻松python之文件专题-关于行的操作
- 后端分布式系列:分布式存储-HDFS 异常处理与恢复
- 虚拟化读书摘要