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

政务网站群建设wordpress字典

政务网站群建设,wordpress字典,服装网站建设报关,org域名做网站C中结构体的初始化 结构体是一个由程序员定义的数据类型,可以容纳许多不同的数据值。在过去,面向对象编程的应用尚未普及之前,程序员通常使用这些从逻辑上连接在一起的数据组合到一个单元中。一旦结构体类型被声明并且其数据成员被标识&…

C++中结构体的初始化

结构体是一个由程序员定义的数据类型,可以容纳许多不同的数据值。在过去,面向对象编程的应用尚未普及之前,程序员通常使用这些从逻辑上连接在一起的数据组合到一个单元中。一旦结构体类型被声明并且其数据成员被标识,即可创建该类型的多个变量,就像可以为同一个类创建多个对象一样。

虽然今天结构体较少使用,但知道它们是什么,以及如何使用它们仍然很重要,这并不仅仅是因为可以在较老的程序中遇到它们,还因为在某些情况下,类的实例无法使用,这时必须使用结构体。

声明结构体的方式和声明类的方式大致相同,其区别如下:

  • 使用关键字 struct 而不是关键字 class。
  • 尽管结构体可以包含成员函数,但它们很少这样做。所以,通常情况下结构体声明只会声明成员变量。
  • 结构体声明通常不包括 public 或 private 的访问修饰符。
  • 类成员默认情况是私有的,而结构体的成员则默认为 public。程序员通常希望它们保持公开,只需使用默认值即可。

以下是一个结构体声明的示例,该结构体将 5 个变量绑定在一起,保存了员工的工资单数据。这个特殊结构体的名称是 PayRoll。请注意,它以大写字母开头,这和类名使用大写字母开头的约定一样。另外还要注意,与类声明一样,在结构体声明的大括号后面必须有一个分号。

struct PayRoll
{int empNumber;string name;double hours,payRate,grossPay;
};

正如在类的对象被创建之前,类声明不会被实例化一样,结构体声明不会创建任何结构体的实例。本示例中的结构体声明只是告诉编译器PayRoll结构体看起来的样子。它本质上是创建一个名为 PayRoll 的新数据类型。

定义 PayRoll 结构体的变量和定义其他任何变量的方式并无二致,首先列出数据类型,然后是变量名称。以下定义语句创建了 PayRoll 结构体的 3 个变量:

PayRoll deptHead, foreman, associate;

它们每一个都是 PayRoll 结构体的实例,可以被分配和拥有自己的内存,以保存其成员数据。

当定义结构体变量时,可以通过两种方式初始化它:使用初始化列表或构造函数。

初始化列表

初始化结构体变量成员的最简单的方法是使用初始化列表。初始化列表是用于初始化一组内存位置的值列表。列表中的项目用逗号分隔并用大括号括起来。

例如,假设已经声明了以下 Date 结构体:

struct Date
{int day, month, year;
};

定义和初始化 Date 变量的方式是:先指定变量名,后接赋值运算符和初始化列表,如下所示:

Date birthday = {23, 8, 1983};

该声明定义 birthday 是一个 Date 结构体的变量,大括号内的值按顺序分配给其成员。所以 birthday 的数据成员已初始化,如图 2 所示。
也可以仅初始化结构体变量的部分成员。例如,如果仅知道要存储的生日是8月23日, 但不知道年份,则可以按以下方式定义和初始化变量:

Date birthday = {23,8};

这里只有 day 和 month 成员被初始化,year 成员未初始化。但是,如果某个结构成员未被初始化,则所有跟在它后面的成员都需要保留为未初始化。使用初始化列表时,C++ 不提供跳过成员的方法。以下语句试图跳过 month 成员的初始化。这是不合法的。

Date birthday = {23,1983}; //非法

还有一点很重要,不能在结构体声明中初始化结构体成员,因为结构体声明只是创建一个新的数据类型,还不存在这种类型的变量。例如,以下声明是非法的:

//非法结构体声明
struct Date
{int day = 23,month = 8,year = 1983;
}

因为结构体声明只声明一个结构体“看起来是什么样子的”,所以不会在内存中创建成员变量。只有通过定义该结构体类型的变量来实例化结构体,才有地方存储初始值。

构造函数初始化结构体

虽然初始化列表易于使用,但它有两个缺点:

  1. 如果有某个成员未被初始化,那么在这种情况下,跟随在该成员后面的成员都不能初始化。
  2. 如果结构体包括任何诸如字符串之类的对象,那么在许多编译器上它都将无法运行。

在这些情况下,可以使用构造函数来初始化结构体成员变量,这和初始化类成员变量是相同的。与类构造函数一样,结构体的构造函数必须是与结构体名称相同的公共成员函数,并且没有返回类型。因为默认情况下,所有结构体成员都是公开的,所以不需要使用关键字 public。

以下是一个名为 Employee 的结构体的声明语句,它包含一个具有两参数的构造函数,以便在创建一个 Employee 变量而不向其传递任何参数时,提供默认值:

struct Employee
{string name;    // 员工姓名int vacationDays,    // 允许的年假daysUsed;    //已使用的年假天数Employee (string n ="",int d = 0)    // 构造函数{name = n;vacationDays = 10;daysUsed = d;}
};

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程

http://www.yayakq.cn/news/487253/

相关文章:

  • 河津网站建设网站建设南宁百度网站建设
  • 软装设计师常用网站成品短视频源码与热门应用比较
  • 城乡厅建设部网站wordpress主题没有评论
  • 网站建设0doit优化营商环境发言材料
  • 开发网站开票名称是什么dw如何制作自己的网站
  • 赣榆县建设局网站武侯区网站建设哪里好点
  • 东莞大岭山俪仁妇产医院seo技术培训宁波
  • 怎么做导航网站门户网站的重要性
  • 台州网站制作服务手机怎么做自己的网站
  • 旅游网站平台建设的方案网站页面设计稿
  • drupal 做的网站世界建筑设计公司排名
  • 网站页面设计报价wordpress 自动跳转
  • 装修公司网站wordpress 模板网站建设盒子怎么搭建
  • 作风建设提升年活动网站下载建行手机银行官方正式版
  • 低价网站建设哪个好微营销工具有哪些
  • 上海专业网站建设价格低网站建设经费请示
  • 黄页推广软件网站ip网站怎么做
  • 营销型网站(易网拓)曲阳路街道网站建设
  • 南阳做网站的公国内十大游戏公司排名
  • 注册网站流程和费用装饰设计网站模板
  • 上海家居网站建设微网站怎么做的好
  • 网站开发教程收费版什么是网络营销什么是传统营销
  • 高端网站制作要多少钱网络软文推广案例
  • 内蒙古 网站建设有什么网站可以做
  • 网站建设开发管理 总结云建站精品模版
  • 网站建设怎么更改图片网站建设框架怎么做
  • 公众号申请网站世界工厂网免费平台
  • 马鞍山做网站美客多电商平台入驻条件
  • 网站建设征集意见早期经典网页游戏
  • 网站基础模块建设商城域名注册多少钱