C++ 类定义

C++ 类定义

定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。

定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

以下实例我们使用关键字 class 定义 Box 数据类型,包含了三个成员变量(可理解为属性) length、breadth 和 height: 

class Box
{
   public:
      double length;   // 盒子的长度
      double breadth;  // 盒子的宽度
      double height;   // 盒子的高度
};

关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 private 或 protected 

定义 C++ 对象

类提供了对象的蓝图,所以基本上,对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。下面的语句声明了类 Box 的两个对象:

Box Box1;          // 声明 Box1,类型为 Box
Box Box2;          // 声明 Box2,类型为 Box

格式为  数据类型(自创) 对象;

访问数据成员

类的对象的公共数据成员可以使用直接成员访问运算符 . 来访问。

length和height是自定义的成员变量属性 声明         set()和get()是自定义的成员函数(方法)属性 声明

以下是代码实战

#include<iostream>
using namespace std;
class Box
{public://成员变量属性 声明 double length;//长度double breadth;//宽度double height;//高度 //成员函数(方法)属性 声明double get(void);void set(double len,double bre,double hei); 
};
//成员函数定义
double Box::get(void)
{return length*breadth*height;} void Box::set(double len,double bre,double hei){length=len;breadth=bre;height=hei;}int main(){Box Box1;//声明(定义对象),类型为BoxBox Box2;//声明Box2,类型为BoxBox Box3;//声明Box3,类型为Boxdouble volume=0.0;//用于储存体积//box1详述Box1.height=5.0;Box1.length=6.0;Box1.breadth=7.0;//box2详述Box2.height=10.0;Box2.length=12.0;Box2.breadth=13.0;//box1体积volume=Box1.height*Box1.length*Box1.breadth;cout<<"Box1的体积:"<<volume<<endl;//box2的体积volume=Box2.height*Box2.length*Box2.breadth;cout<<"Box2的体积:"<<volume<<endl;//box3详述Box3.set(16.0,8.0,12.0);volume=Box3.get();cout<<"Box3的体积:"<<volume<<endl;return 0; }

 需要注意的是,私有的成员和受保护的成员不能使用直接成员访问运算符 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

1.介绍 Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation Swin-Unet&#xff1a;用于医学图像分割的类Unet纯Transformer 2022年发表在 Computer Vision – ECCV 2022 Workshops Paper Code 2.摘要 在过去的几年里&#xff0c;卷积神经网络&#xff…

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel&#xff0c;是数据&#xff08;data&#xff09;和 选择器&#xff08;selector&#xff09;的简写&#xff0c;该工具使用选择器查询和修改数据结构。 支持 JSON&#xff0c;YAML&#xff0c;TOML&…

CentOS 7 安装配置MySQL

目录 一、安装MySQL​编辑​编辑 1、检查MySQL是否安装及版本信息​编辑 2、卸载 2.1 rpm格式安装的mysql卸载方式 2.2 二进制包格式安装的mysql卸载 3、安装 二、配置MySQL 1、修改MySQL临时密码 2、允许远程访问 2.1 修改MySQL允许任何人连接 2.2 防火墙的问题 2…

TCP三握四挥(面试需要)

TCP建立连接需要三次握手过程&#xff0c;关闭连接需要四次挥手过程 三次握手 从图中可以看出&#xff0c;客户端在发起connect时&#xff0c;会发起第一次和第三次握手。服务端在接收客户端连接时&#xff0c;会发起第二次握手。 这三次握手&#xff0c;都会通过SYNACK的方式…

基于ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模教程

详情点击链接&#xff1a;基于ChatGPT4Python近红外光谱数据分析及机器学习与深度学习建模教程 第一&#xff1a;GPT4 1、ChatGPT&#xff08;GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变&#xff09; 2、ChatGPT对话初体验 3、GPT-4与GPT-3.5的区别&#xff0c;以及与…

20240122在WIN10+GTX1080下使用字幕小工具V1.2的使用总结(whisper)

20240122在WIN10GTX1080下使用字幕小工具V1.2的使用总结 2024/1/22 19:52 结论&#xff1a;这个软件如果是习作&#xff0c;可以打101分&#xff0c;功能都实现了。 如果作为商业软件/共享软件&#xff0c;在易用性等方面&#xff0c;可能就只能有70分了。 【百分制】 可选的改…

2017年认证杯SPSSPRO杯数学建模A题(第二阶段)安全的后视镜全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 A题 安全的后视镜 原题再现&#xff1a; 汽车后视镜的视野对行车安全非常重要。一般来说&#xff0c;汽车的后视镜需要有良好的视野范围&#xff0c;以便驾驶员能够全面地了解车后方的道路情况。同时&#xff0c;后视镜也要使图像的畸变尽可能…

Centos升级gcc版本

步骤1&#xff1a;查看当前服务器gcc版本 gcc –version 步骤2&#xff1a;查看当前gcc安装目录 find / -name gcc cd /usr/bin ll gcc* 因为gcc&#xff0c;g&#xff0c;c都是配套的,查找出 g和c的原版本位置 步骤3&#xff1a;安装下载依赖包 yum install glibc-heade…

yolov8 opencv dnn部署 github代码

源码地址 本人使用的opencv c github代码,代码作者非本人 实现推理源码中作者的yolov8s.onnx 推理条件 windows 10 Visual Studio 2019 Nvidia GeForce GTX 1070 opencv4.7.0 (opencv4.5.5在别的地方看到不支持yolov8的推理&#xff0c;所以只使用opencv4.7.0) c部署 环境…

竞赛保研 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

Maven《四》-- 基于Idea进行Maven工程构建

目录 &#x1f436;4.1 构建概念和构建过程 &#x1f436;4.2 命令方式项目构建 1. &#x1f959;编译&#xff1a;mvn compile 2. &#x1f959;清理&#xff1a;mvn clean 3. &#x1f959;打包&#xff1a;mvn package 4. &#x1f959;安装&#xff1a;mvn install …

泰迪科技最新大数据法律监督模型解决方案

大数据法律监督平台是基于监督数据整合管理平台、监督模型构建平台、内置模型库以及法律监督线索管理平台打造的一套服务于检察机关法律监督工作的专业化系统。通过数据采集、融合、挖掘、建模、展现等一系列能力&#xff0c;辅助检察官从纷繁复杂的数据中&#xff0c;开展多维…

java遍历(for和forEach)

1.dade文件 package model;public class dade {private int id;private String name;public dade() {}public dade(int id, String name) {this.id id;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {r…

Python中的函数(二)

1 闭包与装饰器 1.1 闭包 闭包&#xff08;Closure&#xff09;是指在一个函数内部定义的函数&#xff0c;并且该内部函数可以访问外部函数作用域中的变量。闭包可以在外部函数执行完毕后&#xff0c;仍然保持对外部函数作用域的引用&#xff0c;从而可以继续访问和操作外部函…

【Java】--网络编程:基于TCP协议的网络通信

【Java】–网络编程&#xff1a;基于TCP协议的网络通信 文章目录 【Java】--网络编程&#xff1a;基于TCP协议的网络通信一、TCP协议1.1 概念1.2 三次握手1.2.1 文字描述1.2.2 画图演示 1.3 四次挥手1.3.1 文字描述1.3.2 画图演示 二、基于TCP的Socket网络编程2.1 概念2.2 服务…

Kafka-服务端-网络层

Reactor模式 Kafka网络层采用的是Reactor模式&#xff0c;是一种基于事件驱动的模式。熟悉Java编程应该了解JavaNIO提供了实现Reactor模式的API。常见的单线程Java NIO的编程模式如图所示。 为了满足高并发的需求&#xff0c;也为了充分利用服务器的资源&#xff0c;服务端需要…

中间件存储设计 - 数组与链表

文章目录 数组ArrayListLinkedListHashMap小结 中间件主要包括如下三方面的基础&#xff1a;数据结构、JUC 和 Netty&#xff0c;接下来&#xff0c;我们先讲数据结构。 数据结构主要解决的是数据的存储方式问题&#xff0c;是程序设计的基座。 按照重要性和复杂程度&#xf…

Python fork方法:创建新进程

除可以进行多线程编程之外&#xff0c;Python 还支持使用多进程来实现并发编程。 Python 的 os 模块提供了一个 fork() 方法&#xff0c;该方法可以 fork 出来一个子进程。简单来说&#xff0c;fork() 方法的作用在于&#xff0c;程序会启动两个进程&#xff08;一个是父进程&…

《WebKit 技术内幕》学习之十(1): 插件与JavaScript扩展

虽然目前的浏览器的功能很强 &#xff0c;但仍然有其局限性。早期的浏览器能力十分有限&#xff0c;Web前端开发者希望能够通过一定的机制来扩展浏览器的能力。早期的方法就是插件机制&#xff0c;现在流行次啊用混合编程&#xff08;Hybird Programming&#xff09;模式。插件…

大模型实战营 Day5作业

基础作业&#xff1a; 使用 LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署 InternLM-Chat-7B 模型&#xff0c;生成 300 字的小故事&#xff08;需截图&#xff09; TurboMind 推理命令行本地对话 lmdeploy chat turbomind /share/temp/model_repos/internlm-cha…