原创 莫影 C语言编程基础 2020-08-03

收录于话题

#C++

19个

图片

01

前言图片

上一章节主要是针对于C语言与C++的区别做了一个详细介绍。不清楚的可以回顾一下哦。本章节主要针对于C++结构体给大家做以详细介绍。

02C++结构体的定义图片图片

C++结构体的声明中可以允许成员被初始化(C++11标准后)

C++定义结构体变量的时候可以省略掉struct 关键字

03C++结构体指针图片

图片


C++结构体中没有构造函数的时候,其实用法和C语言的没什么区别,而动态申请内存从原来的malloc改为new,前一章节有讲解

04基本输入输出的改变图片


C++输入输出不再需要格式控制字符,直接用<< >> 结合cout和cin对象去使用,cin>>number;表示输入一个数 cout<<"Joker";表示输出字符串

测试代码如下:

图片

05C++包含普通函数这个大家学会如何访问即可,结构体中的函数我们称之为成员函数,成员函数的访问和数据成员的访问是一样的方式.

图片


而对于结构体中的函数访问结构中的数据是可以直接访问的,代表的是每一个结构体变量的行为,其实这差不多就是一个类的思想,只是类具有权限限定,后续会给大家讲解。

06结构体中特殊的函数图片

构造函数基本特点:

  • 构造函数名字和结构体名或者类名一致

  • 构造函数没有返回值

  • 构造函数创建结构体变量或者创建对象时被调用

  • 不写构造函数,存在一个默认的无参构造函数,写了默认的就不存在了。

C++中的delete关键字是可以删除掉默认的函数,当一个结构体没有构造函数是不可以创建对象(变量)的。不写构造函数,存在一个默认的无参构造函数,所以通常我们可以创建无参结构体对象(变量)

图片


构造函数创建结构体变量或者创建对象时被调用,所以当我们写一个有参构造函数的的时候,创建结构体对象的是时候需要和构造函数保持一致,包括new一个对象也是一样的。

图片


值得的一说的是,当我们不存在无参的构造函数的时候,创建数组的时候和C语言中是不同的,所以一般我们会写一个无参构造函数,专门用来创建对象数组。

图片


array[3] 相当于三个普通的对象,并且无参,所以我们通常采用重载的方式写一个无参构造函数。

关于构造函数就讲这么多,更多的在类和对象中给大家分析