我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

深入了解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++封闭类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

一个类的成员变量如果是另一个类的对象,就称之为“成员对象”。包含成员对象的类叫封闭类(enclosed class)。本文主要和大家聊聊C++封闭类的使用,需要的可以参考一下
2022-11-13

深入了解Android中GestureDetector的定义与使用

Android中的GestureDetector 可以使用 MotionEvents 检测各种手势和事件,非常的好用。本文将会通过几个具体的例子来讲解一下GestureDetector的具体使用方法,需要的可以参考一下
2023-01-31

深入了解Rust中函数与闭包的使用

本文主要介绍一下Rust函数相关的内容,首先函数我们其实一直都在用,所以函数本身没什么可说的,我们的重点是与函数相关的闭包、高阶函数、发散函数,感兴趣的可以学习一下
2022-11-13

详解Python中类的定义与使用

类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。目标:
2022-06-04

深入解析SQL的定义和使用范围

SQL的定义及应用领域详解摘要:本文旨在介绍 SQL(Structured Query Language)的定义及其在不同应用领域中的具体应用。首先,我们将简要介绍 SQL 的定义和历史背景。接着,我们将深入探讨 SQL 在数据管理、数据分
深入解析SQL的定义和使用范围
2023-12-28

深入探讨:Golang协程的定义与使用场景

Golang(Go)是一种开源编程语言,在现代编程领域中越来越受欢迎。它具有高效的并发编程能力,其中协程(Goroutine)是其并发编程模型中的重要概念之一。本文将深入探讨Golang协程的定义与使用场景,并提供具体代码示例,帮助读者更好
深入探讨:Golang协程的定义与使用场景
2024-02-29

深入了解C++11中promise和future的使用

C++11中promise和future机制是用于并发编程的一种解决方案,用于在不同线程完成数据传递(异步操作)。Promise和Future提供了访问异步操作结果的机制,可以在线程之间传递数据和异常消息。本文就来聊聊二者的使用,希望对大家有所帮助
2022-11-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录