搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Gausst松鼠会
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
遥感概念理解(更新中)_遥感中,传感器把电磁波分成不同的部分,然后通过某种传感器获得地物信息,(1)传感器
2
Appium启动inspector session后报错 'app' option is required for reinstall
3
阿里云服务器配置选择流程(2023新版教程)_阿里云买服务器时的设置
4
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条_an430液晶屏
5
Kaggle入门——泰坦尼克之灾_泰坦尼克号数据处理
6
大型语言模型(LLMs):从训练到推理的全面概述_理解大语言模型从训练到推理的全面概述
7
将 Ordinals 与 比特币智能合约集成 : 第 1 部分_ordinals nft 转账 源码
8
ai写作论文免费网站推荐!ai论文生成器免费
9
辰视·工业级3D视觉 | 透明体定位与识别解决方案_3d视觉对于透明物体的识别作用
10
【2019.05】NTLK安装与基本使用方法_ntlk下载
当前位置:
article
> 正文
类中的封装_类中封装的什么东西
作者:Gausst松鼠会 | 2024-04-09 12:10:21
赞
踩
类中封装的什么东西
类通常分为以下两个部分:
类的实现细节;
类的使用方式;
当使用类时,不需要关心其实现细节;
当创建一个类时,才需要考虑其内部实现细节;
封
装的基本概念:
根据日常生活中的经验:
并不是类的每个属性都是对外公开的
如:女孩子不希望外人知道自己的年龄和身高;
如:一些男孩子不希望别人知道自己会尿床;
而一些类的属性是对外公开的
如:人类的姓名,学历,国籍等;
因此
,需
要
在类的
表示法中定义属性和行为的公开级别
类似文件系统中文件的权限;
C++中类的封装:
成
员变量
C++
中用于表示类属性的变量;
成
员函数
C++
中用于表示类行为的函数;
在
C++
中可以给成员变量和成员函数定义访问级别
public
成员变量和成员函数可以在类的内部和外界访问和调用;
private
成
员变量和成员函数只能在类的内部被访问和调用;
类成员的作用域:
类成员的作用域都只在类的内部,外部无法直接访问
成
员函数可以直接访问成员变量和调用其它成员函数;
类的外部可以通过类变量访问
public
成员
类成员的作用域与
访
问级别没有关系;
C++
中用
struct
定义的类的所有成员默认为
public
类的真正形态:
struct
在
C
语言中已经有了自己的含义,只能继续兼容;
在
C++
中提供了新的关键字
class
用于类定义;
class
和
struct
的用法是完全相同的;
在用
struct
定义类时,所有成员的默认属性为
public
在用
class
定义类时,所有成员的默认属性为
private
一
个运算类的实现:
#ifndef _OPERATOR_H_
#define _OPERATOR_H_
class Operator
{
private:
char mOp;
double mP1;
double mP2;
public:
bool setOperator(char op);
void setParameter(double p1, double p2);
bool result(double& r);
};
#endif
#include "Operator.h"
bool Operator::setOperator(char op)
{
bool ret = false;
if( (op == '+') || (op == '-') || (op == '*') || (op == '/') )
{
ret = true;
mOp = op;
}
else
{
mOp = '\0';
}
return ret;
}
void Operator::setParameter(double p1, double p2)
{
mP1 = p1;
mP2 = p2;
}
bool Operator::result(double& r)
{
bool ret = true;
switch( mOp )
{
case '/':
if( (-0.000000001 < mP2) && (mP2 < 0.000000001) )
{
ret = false;
}
else
{
r = mP1 / mP2;
}
break;
case '+':
r = mP1 + mP2;
break;
case '*':
r = mP1 * mP2;
break;
case '-':
r = mP1 - mP2;
break;
default:
ret = false;
break;
}
return ret;
}
#include <stdio.h>
#include "Operator.h"
int main(int argc, char *argv[])
{
Operator op;
double r = 0;
op.setOperator('/');
op.setParameter(8, 4);
if( op.result(r) )
{
printf("Result is %f\n", r);
}
printf("Press any key to continue...");
getchar();
return 0;
}
类的精华在于封装
将实现细节和使用方式相分离;
C++
中通过
public
和
private
实现类的封装
public
成员可以通过变量被外界访问;
private
成员只能够在类内部使用;
类的定义和实现可以分开到不同的文件中
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/392695
推荐阅读
article
华为
OD
机试
- 符号运算(
Java
& JS &
Python
&
C
&
C
++)_
华为
机试
符号...
华为
OD
机试
- 符号运算(
Java
& JS &
Python
&
C
&
C
++),实现:栈,中缀表达式计算_
华为
机...
赞
踩
article
【
Copilot
】Sign
in
fai
led
. Reason: ...
read
ECONNRES...
如果可能的话,尝试连接中国电信的流量网络,有时候不同网络提供商的网络环境也会影响登录操作。并不是所有地区和网络环境都能够...
赞
踩
article
Axure
之
中继器
的使用(
交互
&动作&
reperter
属性&Item属性)_
axure
中继器
交互
...
目录一.
中继器
的基本使用 二.
中继器
的动作(增删改查)2.1 新增2.2 删除 2.3 更新行 2.4 效果展示 2.5...
赞
踩
article
【
软件
测试
】
测试
人,被裁后已
失业
大半年该如何破局?_
软件
测试
失业
了
还
能
做些
什么
...
软件
测试
近很多
测试
人过的并不好,行业缩水对
测试
人的影响很直接干脆,究其原因
还
是
测试
门槛低,同质化
测试
人员比较多,但实际上...
赞
踩
article
[音乐天堂]Ce
train
qui
s
’
en
va
离站的火车_ce
train
qui
s
en
...
《Ce
train
qui
s
’
en
va
离站的火车》Je naurai
s
pa
s
du v
en
ir jaurai
s
...
赞
踩
article
源
创者说 | 从
技术
开放到产业
连接
,
开
源
成就广泛
连接
的
生态
...
开
源
的种子撒落在中华大地已有 30 余年的时间,如今正是百花齐放、争奇斗艳的时节。当前,国内
开
源
已实现跨越式发展,越来越...
赞
踩
article
axure
谷歌
插件
(直接
下载
)...
axure
谷歌
插件
在网上找一个
谷歌
的
axure
,不是登陆就是收费,离谱。找了好久才找到这个,我
下载
保存到网盘了,直接
下载
...
赞
踩
article
C++KKT基本
算法
模拟
算法
【
蚱蜢
】_有
一天
,
一只
蚱蜢
像往常一样在草地上愉快地
跳跃
,
它发现了一条写满...
模拟
算法
蚱蜢
描述有
一天
,
一只
蚱蜢
像往常一样在草地上愉快地
跳跃
,它发现了一条写满了
英文字母
的
纸带
。
蚱蜢
只能在元音字母(A...
赞
踩
article
解决:
ImportError
:
cannot
import
name
_
import
error: ca...
这个问题基本可以确定是tushare和pandas版本匹配问题。因为tushare本身有调用pandas,随着tusha...
赞
踩
article
掌握
链表
——(八)
LeetCode160
.
相交
链表
_gh中
如何
选择
longlist
...
相交
链表
题目描述:给你两个单
链表
的头节点 headA 和 headB ,请你找出并返回两个单
链表
相交
的起始节点。如果两个...
赞
踩
article
2022-2028年
中国
开源
软件
行业
市场专项调研及竞争战略分析
报告
_
开放源码
调研中心...
报告
类型:产业研究
报告
格式:电子版、纸介版出品单位:智研咨询-产业信息网
开源
软件
一般指开放源代码
软件
,
开放源码
软件
(o...
赞
踩
article
蓝桥
杯
史上最详细
C
/
C
++解析(经典题解)_
蓝桥
杯
c++
比赛
...
史上最详细的
蓝桥
杯
C
/
C
++解析,包含了三道真题和各种思路,想提高自己的小伙伴赶快看看吧。_
蓝桥
杯
c++
比赛
蓝桥
杯
c++
...
赞
踩
article
kuka
机器人
profinet
网络
配置
步骤_
KUKA
工业
机器人
外部
轴
配置
方法...
1、连接控制柜和
外部
轴的动力线和编码器线(
外部
轴动力线)(连接
机器人
底部RDC编码器线)2、Workvisual
外部
轴添...
赞
踩
article
Git
生成SSH密钥_
git
生成
ssh
key
命令...
3、进入C:\Users\XXX\.
ssh
目录下,查看生成的SSH密钥。1、鼠标右键,选择"
Git
Bash Here"...
赞
踩
article
机顶盒
晶晨
s905l3b
芯片刷第三方系统+安卓9
root
教程+
armbian
写入
EMMC
教程_机顶...
机顶盒
s905l3b
芯片刷第三方系统+安卓9
root
教程+刷
armbian
写入
EMMC
教程。_
机顶盒
刷系统
机顶盒
刷系统...
赞
踩
article
IDEA
配置
git
详细步骤_
idea
git
账户
配置
...
IDEA
配置
Git详细步骤_
idea
git
账户
配置
idea
git
账户
配置
...
赞
踩
article
Python
中
合并
列表
的五种方法_
python
list
合并
...
一寸光阴一寸金_
python
list
合并
python
list
合并
...
赞
踩
article
基于
SSM
的
甜品店
商城
系统_
ssmgrogshop
...
随着社会经济的发展和人们生活水平的提高,甜品消费逐渐成为现代生活中的一种时尚和享受。然而,传统的
甜品店
商城
存在一些问题,...
赞
踩
article
python
c
a
nnot
import
n
a
me
_
python
导包错误 ImportError: ...
开发工具pych
a
rm运行方式pych
a
rm右键运行
python
命令执行项目目录结构cloud_pl
a
tform代码im...
赞
踩
article
Java
面试题
(十)_
java
面试题
数据库
分库
分表
设计...
每个库的增长步调不一致,这种情况会给后续的扩容带来步调不一致,无法统一操作的问题。第二、按照前面描述的业务场景,一个用户...
赞
踩
相关标签
算法
华为机试
Java
JavaScript
Python
C语言
C++
copilot
intellij-idea
java
axure
交互
压力测试
软件测试
自动化测试
测试开发
性能测试
音乐
c
开源
axure谷歌插件
c++
字符串
模拟