当前课程知识点:C++语言程序设计基础 >  第4章 类与对象 >  结构体与联合体 >  结构体(例4-7)

返回《C++语言程序设计基础》慕课在线视频课程列表

结构体(例4-7)在线视频

结构体(例4-7)

结构体

 

结构体的定义

struct 结构体名称 {
	 公有成员
protected:
    保护型成员
private:
     私有成员
};

结构体的初始化

类型名 变量名 = { 成员数据1初值, 成员数据2初值, …… };

例4-7用结构体表示学生的基本信息

#include#include#includeusing namespace std;

struct Student {	//学生信息结构体
	int num;		//学号
	string name;	//姓名,字符串对象,将在第6章详细介绍
	char sex;		//性别
	int age;		//年龄
};

int main() {
	Student stu = { 97001, "Lin Lin", 'F', 19 };
	cout << "Num:  " << stu.num << endl;
	cout << "Name: " << stu.name << endl;
	cout << "Sex:  " << stu.sex << endl;
	cout << "Age:  " << stu.age << endl;
	return 0;
}

运行结果:
Num:  97001
Name: Lin Lin
Sex:  F
Age:  19


下一节:联合体(例4-8)

返回《C++语言程序设计基础》慕课在线视频列表

结构体(例4-7)课程教案、知识点、字幕

大家好

欢迎回来继续学习

C++语言程序设计

这一节我们来学习结构体

结构体这种数据结构

是在C语言中就有的

C++呢也继承了结构体

这种数据结构

那么实际上呢

在C++中

它的结构体已经不是

当初C语言中的那个结构体了

C++的结构体是一种特殊的类

那么它跟类的差别在哪儿呢

类里面的成员

默认情况下

如果你定义在类体的最开头

你可以不写访问空间属性

它默认就是私有的

而结构体里面的成员

如果你定义在结构体的开头

并且不写访问控制属性

它默认是公有的

什么时候我们会要用结构体呢

既然它就是一种特殊的类

那我们用类不就可以了吗

干吗还用结构体呢

如果我们需要表示

一组集成在一起的数据

而基本上没有太多的函数

去表示它的功能

没有太多的操作

这个时候呢

我们就可以使用结构体

或者有的时候

我们需要把这一组数据

集成在一起

构成一个新的类型

但是又希望外部

能够比较方便地访问这些数据

就把这些数据定义成公有的

希望这样的话

也可以选择结构体

但是结构体呢

在C++中用得并不多

很多时候是为了跟C语言兼容

来使用结构体的

现在我们来看怎么样定义

和初始化结构体

那结构体的定义的语法形式呢

看起来跟类是很像的

只不过它是用struct关键字

而不是class

后面跟的是结构体的名字

然后紧跟着开始大括号之后

定义的成员

就默认是公有成员

不用写public

如果你想把成员定义成

保护型的 私有型的也可以

那么就要写成protected

private就可以了

结构体的成员呢

既可以是数据成员

也可以是函数成员

在以前C语言中的结构体中呢

是只能定义数据

不能定义函数成员的

在C++中我们说了

结构体其实就是一种特殊的类

跟类一样

它也可以定义函数成员

如果一个结构体的全部数据成员

都是公有成员

并且没有用户定义的构造函数

没有基类和虚函数

基类和虚函数

我们在后续章节中会介绍

那么这种情况下

这个结构体的变量

就可以像这样来进行初始化

下面我们来看一个结构体的例子

好 这是一个使用结构体的例子

我们看在这儿定义了个

学生信息结构体

它包括学号 姓名 性别

和年龄

那我们知道

在结构体中呢

如果你什么访问控制属性都不写

它默认的就是public属性

现在我们看在主函数中

使用这个结构体怎么使用

因为它只有数据

没有任何其他的成员函数

所以我们可以用这样的

大括号里面列出初始值的方式

对这个结构体

变量进行初始化

对结构体对象进行初始化

然后使用的时候呢

我们可以直接用结构体

对象名.成员名的方式

访问它的所有成员

因为它都是公有成员

所以在外部都是可以访问的

C++语言程序设计基础课程列表:

第1章 绪论

-导学

--第1章导学

-计算机系统简介

--计算机系统简介

--计算机系统简介 测试题

-计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展 测试题

-面向对象的基本概念

--面向对象的基本概念

--面向对象的基本概念 测试题

-程序的开发过程

--程序的开发过程

--程序的开发过程 测试题

-信息的表示和储存

--计算机中的信息与存储单位

--计算机的数字系统

--数据的编码表示

--信息的表示和储存 测试题

-实验指导

--实验一:VS开发环境介绍

第2章 C++简单程序设计(一)

-导学

--第二章导学

-C++语言概述

--C++的特点和程序实例

--C++字符集和词法记号

--C++语言概述 测试题

-基本数据类型、常量、变量

--基本数据类型、常量、变量

--程序举例

--基本数据类型、常量、变量 测试题

-运算与表达式

--算术运算与赋值运算

--逗号运算、关系运算、逻辑运算和条件运算

--Sizeof运算、位运算

--运算优先级、类型转换

--运算与表达式 测试题

-实验二:简单程序设计(上)

--实验二:简单程序设计(上)

第2章 C++简单程序设计(二)

-数据的输入和输出

--数据的输入和输出

--数据的输入和输出 测试题

-选择结构

--if语句

--switch语句

--选择结构 测试题

-循环结构

--循环结构——while语句

--do-while语句

--for语句

--嵌套的控制结构、其他控制语句

--循环结构 测试题

-自定义类型

--自定义类型

--自定义类型

-第2章小结

--第二章小结

-实验二:C++简单程序设计(下)

--实验二C++简单程序设计(下)

第3章 函数

-导学

--导学

-函数定义

--函数定义

--函数定义 测试题

-函数调用

--函数调用(例3-1)

--例3-2

--例3-3

--例3-4

--例3-5

--例3-6

--函数调用 测试题

-嵌套与递归

--函数的嵌套调用(例3-7)

--函数的递归调用(例3-8)

--例3-9

--例3-10

--嵌套与递归 测试题

-函数的参数传递

--函数的参数传递

--函数的参数传递 测试题

-引用类型

--引用类型(例3-11)

--引用类型 测试题

-含有可变参数的函数

--含有可变参数的函数

--含有可变参数的函数 测试题

-内联函数

--内联函数(例3-14)

--内联函数 测试题

-constexpr函数

--constexpr函数

--CONSTEXPR函数课后习题

-带默认参数值的函数

--带默认参数值的函数

--默认参数值例(3-15)

--带默认参数值的函数 测试题

-函数重载

--函数重载(例3-16)

--函数重载 测试题

-C++系统函数

--C++系统函数(例3-17)

--C++系统函数习题

-第3章小结

--第三章小结

-实验三(上)函数的应用

--实验三(上)函数的应用

-实验三(下)函数的应用

--实验三(下)函数的应用

第4章 类与对象

-导学

--导学

-面向对象程序的基本特点

--面向对象程序的基本特点

--面向对象程序的基本特点 测试题

-类和对象

--类和对象的定义

--类和对象的程序举例

--类和对象 测试题

-构造函数

--构造函数基本概念

--构造函数例题(1)——例4-1

--构造函数例题(2)——例4-2

--委托构造函数

--复制构造函数

--复制构造函数调用举例

--构造函数 测试题

-析构函数

--析构函数

--析构函数 测试题

-类的组合

--类的组合

--类的组合程序举例

--前向引用声明

--类的组合 测试题

-UML简介

--UML简介

--UML简介课后习题

-结构体与联合体

--结构体(例4-7)

--联合体(例4-8)

--结构体与联合体 测试题

-枚举类

--枚举类

--枚举类 测试题

-第4章小结

--第四章小结

-实验四(上)

--实验四(上)

-实验四(下)

--实验四(下)

第5章 数据的共享与保护

-导学

--导学

-标识符的作用域与可见性

--标识符的作用域与可见性

--标识符的作用域与可见性 测试题

-对象的生存期

--对象的生存期

--对象的生存期 测试题

-类的静态成员

--静态数据成员(例5-4)

--静态函数成员(例5-5)

--类的静态成员 测试题

-类的友元

--类的友元(例5-6)

--类的友元 测试题

-共享数据的保护

--共享数据的保护(例5-7)

--共享数据的保护 测试题

-多文件结构和预编译命令

--多文件结构和预编译命令(例5-10)

--多文件结构和预编译命令 测试题

-第5章小结

--小结

-实验五

--实验五

第6章 数组、指针与字符串(一)

-导学

--导学

-数组的定义与初始化

--数组的定义与使用

--数组的储存与初始化

--一维数组应用举例

--数组的定义与初始化 测试题

-数组作为函数的参数

--数组作为函数参数(例6-2)

--数组作为函数的参数 测试题

-对象数组

--对象数组

--对象数组 测试题

-基于范围的for循环

--基于范围的for循环

-指针的定义和运算

--指针的概念、定义和指针运算

--指针的初始化和赋值

--指针的算术运算、关系运算

--指针的定义和运算 测试题

-综合实例

--综合实例

-实验六(上)

--实验六上

第6章 数组、指针与字符串(二)

-指针与数组

--用指针访问数组元素

--指针数组

--指针与数组 测试题

-指针与函数

--以指针作为函数参数

--指针类型的函数

--指向函数的指针

--指针与函数 测试题

-对象指针

--对象指针

--对象指针 测试题

-动态内存分配

--动态分配与释放内存

--申请和释放动态数组(一)

--申请和释放动态数组(二)

--动态内存分配 测试题

-智能指针

--智能指针

-vector对象

--vector对象

--vector对象 测试题

-对象复制与移动

--深层复制与浅层复制

--移动构造

--对象复制与移动 测试题

-字符串

--C风格字符串

--string类

--字符串 测试题

-第6章小结

--第六章小结

-综合实例

--综合实例

-实验六(下)

--实验六(下)

结构体(例4-7)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。