当前位置: 首页 > news >正文

C语言的结构体和C++的结构体 差异

1.结构体内部成员函数

在 C 语言中,我们不能在结构体内部定义成员变量。但在 C++ 中,结构体不仅可以拥有成员变量,还可以拥有成员方法。

2.直接初始化

在 C 语言中,我们不能直接初始化结构体成员变量。但在 C++ 中可以这样做。

#include <stdio.h> 
  
struct Record { 
    int x = 7; 
}; 
  
int main() 
{ 
    struct Record s; 
    printf("%d", s.x); 
    return 0; 
}

3.使用 struct 关键字

在 C 语言中,在定义结构体变量时,我们需要使用 struct 关键字。在 C++ 中,关键字 struct 不是必须的。

在 C 语言中,我们定义结构 Recode 变量时必须使用  “struct Record” 。

在 C++ 中,我们可以我们可以省略 struct,直接写成 ‘Record‘ 也能正常工作。

4.结构体中的构造函数

在 C 语言中,结构体内部不能包含构造函数,但在 C++ 中,可以含有构造函数。

#include <stdio.h> 
  
struct Student { 
    int roll; 
    Student(int x) 
    { 
        roll = x; 
    } 
}; 
  
int main() 
{ 
    struct Student s(2); 
    printf("%d", s.roll); 
    return 0; 
}

总结

 其实就是面向过程和面向对象的思想。

相关文章:

  • 分析K8S中Node状态为`NotReady`问题
  • MySQL 中,聚合函数、连表查询、GROUP BY、ORDER BY、LIMIT 和 HAVING
  • XSS基础靶场练习
  • 数学建模 绘图 图表 可视化(3)
  • PDF文件转Markdown,基于开源项目marker
  • Mybatis—01
  • 在 Spring Boot 结合 MyBatis 的项目中,实现字段脱敏(如手机号、身份证号、银行卡号等敏感信息的部分隐藏)可以通过以下方案实现
  • 13、STL中的unordered_set使用方法
  • 探索MCP-我的学习与实践笔记
  • 基于WebAssembly的浏览器密码套件
  • [AI速读]如何构建高效的AMBA协议检查器(Checker IP)
  • DockerTLS加密/不加密传输
  • GitLab CI/CD学习教程(第二章Runner)
  • vpc网络之间的关系
  • 游戏引擎 Unity - Unity 顶部菜单栏(文件、编辑、资源、游戏对象、组件、服务、窗口、帮助)
  • 区块链技术的应用场景和优势
  • 【汽车开发工具选型指南】Jama Connect® for Automotive解决方案解析
  • Powershell WSL Windows系统复制数据到ubuntu子系统系统
  • element 样式记录
  • Unity音频混合器如何暴露参数
  • 普京提议重启俄乌直接谈判后,特朗普表态了
  • 人民日报钟声:平等对话是解决大国间问题的正确之道
  • 中日有关部门就日本水产品输华问进行第三次谈判,外交部回应
  • 虚假认定实质性重组、高估不良债权价值,原中国华融资产重庆分公司被罚180万元
  • 比特币价格时隔三个月再度站上10万美元
  • 万达电影:股东杭州臻希拟减持不超1.3927%公司股份