首页 > 编程语言 >C语言中的结构体与C++中的类异同

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

时间:2022-12-09 16:03:39浏览次数:40  
标签:cout Point 异同 可以 C++ C语言 结构


从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;
}

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

(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++中的类异同_#include_02

从上面可以看出,只是在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语言中的结构体与C++中的类异同_编程语言_03


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

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

 

当然了,C++类的用法远远不止这些,这里只是简述一下结构体和类的区别,对于结构体和类的用法这里不详述,想要了解的朋友可以去学习C语言和C++面向对象编程,




标签:cout,Point,异同,可以,C++,C语言,结构
From: https://blog.51cto.com/u_15907770/5926139

相关文章

  • MFC,VC++中,CView类意外消失
    (1)在我们写MFC程序的时候,可能CView类可能会意外的消失,现在我用的是Win7操作系统,VC6.0和WindowsXP是完全兼容的,可能是系统兼容的问题,所以在Win7系统下编写程序总会出现一些莫......
  • MFC,VC++计算器小程序
    大学期末没课,某个中午闲来无聊,正好在自学MFC,于是想用MFC、C++写点东西,由于能力有限,当然的写个简单点的啦,于是花了两个小时写了这个计算器的小程序,希望对初学VC++和MFC的朋友有所帮助。程......
  • 冒泡排序算法详解C++程序
    (1)冒泡排序算法:(BubbleSort)首先肯定是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到......
  • 《安富莱嵌入式周报》第294期:将C/C++代码转换为各种高级语言,超炫渲染着色器,VS2022新闻
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104更新视频教程:USB应用实战视频教程第5期:手把手玩转USBHID免驱方式......
  • C++那些事-static
    static那些事关于作者微信公众号:当与不同类型一起使用时,Static关键字具有不同的含义。我们可以使用static关键字:静态变量:函数中的变量,类中的变量静态类的成员:类对......
  • OC之【c语言结构体】
    <stdio.h>void//这个机构只能在函数内部使用//定义一个名为Student的结构体类型structintage;//年龄char*name;//姓名floatheight;//身高};......
  • C++那些事-const
    关于作者微信公众号:1.const含义常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。2.const作用可以定义常量constinta=100;......
  • C++笔记(自用)
    《EffectiveC++》条款11在operator=中处理“自我赋值”自我赋值证同测试:if(this==&rhs)return*this;影响并行处理效率记住副本:type*memberO=member;pmember=ne......
  • C语言学习入门
    编译文件:cc-cone.ctwo.c 生成.o目标文件链接文件:ccone.otwo.o   默认生成a.out执行文件指定生成的可执行文件名 cc-ooneone.o 连续编译、链接:ccone.c......
  • transpose和permute函数的异同
    参考链接:https://blog.csdn.net/Y2398Y/article/details/108620569https://www.cnblogs.com/zjuhaohaoxuexi/p/15585775.html......