广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >深入了解C++封闭类的定义与使用
  • 904
分享到

深入了解C++封闭类的定义与使用

C++封闭类使用C++封闭类 2022-11-13 19:11:32 904人浏览 八月长安
摘要

目录封闭类轮胎类引擎类汽车类总代码封闭类 今天,我学习的是c++对象的一种操作.就是成员对象和封闭类. 那么封闭类是什么呢?和普通类用什么不同吗? 封闭类就是有成员对象的类,那么成员

封闭类

今天,我学习的是c++对象的一种操作.就是成员对象和封闭类.

那么封闭类是什么呢?和普通类用什么不同吗?

封闭类就是有成员对象的类,那么成员对象是什么呢?我们一起来看一下吧

封闭类分为了轮胎类,引擎类,汽车类......我们可以将封闭类可以看作一个完整的汽车.

那么汽车里面用哪些成员呢,肯定有轮胎对吧,还有引擎,窗户等等,那么轮胎有什么成员呢?有外层的橡胶,里面的金属,对吧.轮胎写成一个对象后,这个轮胎呢是汽车的一部分,而汽车也是一个对象,所以轮胎就是一个成员对象,而汽车呢因为包含了其他对象,就叫做封闭类.

接下来,就可以开始写程序了.

我们先写轮胎,轮胎的材质橡胶也可以写成一个对象,包含着橡胶的大小,尺存什么的.而我要给大家做一个最简单的例子,就不用写橡胶,金属什么的了!这个轮胎是一个圆对吧,圆肯定有半径吧,宽度/长度吧,还有高啊,都可以写进去:

轮胎类

#include<bits/stdc++.h>
using namespace std;
class CTyre{ //轮胎类 
  private:
    int redius; //半径
    int width;  //宽度或长度
    int height; //高度
  public:
  CTyre(){ //构造函数 
    redius=0,width=0,height=0; //赋值 
  } 
  ~CTyre(){ //析构函数 
    printf("%d %d %d\n",redius,width,height); //类销毁时输出这3个成员的值 
  }
  
};

这个就是我写的其中一个类,轮胎类,里面标注着轮胎的半径,长,高,还有构造函数和祈构函数,中间省略的部分可以写这种东西,这个轮胎的作用等等.

写完了轮胎,还有什么呢?自然就是引擎了,引擎类里面需要有什么成员呢?首先我们要知道这个引擎是否是好的,还要知道这个引擎是不是开启的,还可以知道这个引擎里面的引擎个数,最后还可以看一下这个引擎的生产公司.

引擎类

#include<bits/stdc++.h>
using namespace std;
class CEngine{ //引擎类 
  private:
    bool use; //是否正在使用
    bool Good_bad; //这个引擎是好的还是坏的
    int parts; //零件的个数
    string production; //生产公司的名称
  public:
  CEngine(){ //构造函数初始化 
    use=false;
    good_bad=true;
    parts=10000; //一般汽车引擎就是这么多零件
    production="丰田汽车"; //目前世界上最大汽车公司 
  } 
  ~CEngine(){ //析构函数 
    cout<<use<<" "<<good_bad<<" "<<parts<<" "<<production<<endl;
  }
  
};

除了引擎和轮胎,汽车肯定还要很多其他的重要部分,由于过于复杂,今天我们就只写这两个成员类.

有了引擎和轮胎,就可以有汽车了,汽车里面有什么成员呢?首先,就是这个汽车的价格,然后才是是引擎和轮胎等各种成员类,注意一下,如果是一个成员类的话,构造函数用参数,在写成员类的时候是不需要加参数的:

汽车类

#include<bits/stdc++.h>
using namespace std;
class CCar{ //汽车类 
  private:
    int price; //汽车的价格 
    CTyre tyre; //汽车的轮胎 
    CEngine engine; //汽车的引擎
  public:
  CCar(int p){//构造函数 
    price=p; //赋值 
  } 
  ~CCar(){ //析构函数 
    printf("%d\n",price); //只用输出这个价格 
  }                         //因为轮胎和引擎类消亡后会自动使用祈构函数      
};

这个CCar就是我们的封闭类了,里面有着引擎和轮胎两个成员对象.

现在我讲一下写封闭类的注意事项:

1.任何生成封闭类的语句,都要让编译器明白,对象中的成员对象,是如何进行初始化的.

2.封闭类对象生成时,先执行所有对象成员的构造函数,然后才执行封闭类自己的构造函数.

3.对象成员的构造函数调用次序和对象成员在类中的说明次序一致.

4.和构造函数正好相反,当封闭类对象消亡时,先执行封闭类的析构函数,然后再执行成员对象的析构函数.调用次序也和构造函数的调用次序相反.

总代码

#include<bits/stdc++.h>
using namespace std;
class CEngine{ //引擎类 
    private:
        bool use; //是否正在使用
        bool good_bad; //这个引擎是好的还是坏的
        int parts; //零件的个数
        string production; //生产公司的名称
    public:
    CEngine(){ //构造函数初始化 
        use=false;
        good_bad=true;
        parts=10000; //一般汽车引擎就是这么多零件
        production="丰田汽车"; //目前世界上最大汽车公司 
    } 
    ~CEngine(){ //析构函数 
        cout<<use<<" "<<good_bad<<" "<<parts<<" "<<production<<endl;
    }
    
};
class CTyre{ //轮胎类 
    private:
        int redius; //半径
        int width;  //宽度或长度
        int height; //高度
    public:
    CTyre(){ //构造函数 
        redius=0,width=0,height=0; //赋值 
    } 
    ~CTyre(){ //析构函数 
        printf("%d %d %d\n",redius,width,height); //类销毁时输出这3个成员的值 
    }
    
};
class CCar{ //汽车类 
    private:
        int price; //汽车的价格 
        CTyre tyre; //汽车的轮胎 
        CEngine engine; //汽车的引擎
    public:
    CCar(int p){//构造函数 
        price=p; //赋值 
    } 
    ~CCar(){ //析构函数 
        printf("%d\n",price); //只用输出这个价格 
    }                         //因为轮胎和引擎类消亡后会自动使用祈构函数      
};
int main(){
    CCar a(10000);
} 

程序输出:

到此这篇关于深入了解C++封闭类的定义与使用的文章就介绍到这了,更多相关C++封闭类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入了解C++封闭类的定义与使用

本文链接: https://www.lsjlt.com/news/170571.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入了解C++封闭类的定义与使用
    目录封闭类轮胎类引擎类汽车类总代码封闭类 今天,我学习的是C++对象的一种操作.就是成员对象和封闭类. 那么封闭类是什么呢和普通类用什么不同吗 封闭类就是有成员对象的类,那么成员对象...
    99+
    2022-11-13
    C++封闭类使用 C++封闭类
  • C++深入讲解类与封装的概念与使用
    目录一、类的组合二、类的封装三、类成员的作用域四、小结一、类的组合 电脑一般而言是由 CPU,内存,主板,键盘和硬盘等部件组合而成。 二、类的封装 类通常分为以下两个部分 类的实现...
    99+
    2022-11-13
  • C语言深入了解自定义数据类型的使用
    目录一、自定义数据类型(上)二、自定义数据类型(中)​​​​​三、自定义数据类型(下)​​​​​一、自定义数据类型(上) 类型命名关键字 (typedef) C语言中可以对类型赋予新...
    99+
    2022-11-13
  • 深入了解Android中GestureDetector的定义与使用
    目录简介赋予widget可以点击的功能会动的组件可删除的组件总结简介 之前我们介绍了GestureDetector的定义和其提供的一些基本的方法,GestureDetector的好处...
    99+
    2023-01-31
    Android GestureDetector使用 Android GestureDetector
  • C语言深入讲解宏的定义与使用方法
    目录一、C语言中的宏定义二、宏定义表达式三、宏表达式与函数的对比四、有趣的问题五、强大的内置宏六、小结一、C语言中的宏定义 #define是预处理器处理的单元实体之一#define ...
    99+
    2022-11-13
  • 深入了解Rust中函数与闭包的使用
    目录闭包高阶函数发散函数闭包 Rust 的闭包由一个匿名函数加上外层的作用域组成,举个例子: fn main() {     let closure = |n: u32| ->...
    99+
    2022-11-13
    Rust 函数 闭包 Rust 函数 Rust 闭包
  • 深入理解Java中包的定义与使用
    目录包是什么?包的作用导入包中的类自定义包包的访问权限控制包是什么? 在开发过程中,会定义很多类,随着类越写越多,难免会出现类重名而发生覆盖的情况,为了在使用它们的时候不让编译器混淆...
    99+
    2022-11-12
  • 深入了解JavaObject类的使用
    目录1.equals方法==运算符equals2.hashCode3.toString4.finalize1.equals方法 ==运算符 比较运算符,即可以判断基本类型又可以判断引...
    99+
    2022-11-13
  • C++深入了解模板的使用
    目录一.泛型编程二.函数模板1.函数模板概念2.函数模板格式3.函数模板的原理三.类模板一.泛型编程 泛型编程:不再是针对某种类型,能适应广泛的类型,跟具体的类型无关的代码 如何实现...
    99+
    2022-11-13
  • C++深入刨析类与对象的使用
    目录this指针this指针存放在哪nullptr与类类的默认成员函数构造函数意义析构函数拷贝构造运算符重载this指针 现在给出一段代码,实现一个普通的日期 date 的打印: c...
    99+
    2022-11-13
  • 深入了解C++智能指针的使用
    目录一、C++11智能指针概述二、C++98中的智能指针三、C++11中的智能指针1.unique_ptr2.shared_ptr3.weak_ptr一、C++11智能指针概述 在C...
    99+
    2022-11-13
  • 深入了解TypeScript中常用类型的使用
    目录原始类型:string,number,boolean数组(Arrays)Any类型在变量上使用类型注释函数(Functions)返回类型注释(Return Type Annota...
    99+
    2022-11-13
  • 深入了解C++11中promise和future的使用
    目录Promise和Future原理Promise和Future模型promise相关函数多线程std::shared_futurepromise和future进阶Promise和F...
    99+
    2022-11-16
    C++ promise future使用 C++ promise future C++ promise C++ future
  • 深入解析SQL的定义和使用范围
    SQL的定义及应用领域详解摘要:本文旨在介绍 SQL(Structured Query Language)的定义及其在不同应用领域中的具体应用。首先,我们将简要介绍 SQL 的定义和历史背景。接着,我们将深入探讨 SQL 在数据管理、数据分...
    99+
    2023-12-28
    SQL 定义 应用 领域
  • Java深入浅出数组的定义与使用上篇
    目录一、数组的基本用法1.什么是数组2.定义数组 3.数组的使用打印数组: 二、数组作为方法的参数基本用法三、数组练习题1.交换两个变量的值2.写一个方法, 将数组中的每个元素都 *...
    99+
    2022-11-13
  • Java深入浅出数组的定义与使用下篇
    接着上一篇继续,老铁们 1.检查数组的有序性 给定一个整型数组, 判断是否该数组是有序的(升序) public static boolean isUp(int[] arr...
    99+
    2022-11-13
  • 深入了解Vue3中props的原理与使用
    目录前言介绍原理前提创建组件实例对象初始化Props操作创建proxy对象去获取Propsprops作为参数传入setup将proxy挂载到render上总结前言 props指父组件...
    99+
    2023-05-19
    Vue3 props原理 Vue3 props使用 Vue3 props
  • 详解Python中类的定义与使用
    类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数...
    99+
    2022-06-04
    详解 定义 Python
  • C++深入讲解namespace与string关键字的使用
    目录namespace1.为什么使用namespace2.namespace的定义3.namespace的使用4.使用using指示符string1.string的定义及初始化2.访...
    99+
    2022-11-13
  • C++深入讲解new与deleted关键字的使用
    目录可执行程序的虚拟地址空间1.new的运算符用法(关键字)2.new的函数用法3.定位new4.new创建对象5.delete6.对于内置类型new/delete/malloc/f...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作