类的真正形态

类的真正形态

类的关键字

struct在C语言中已经有了自己的定义,必须继续兼容
在C++中提供了新的关键字,class用于类定义
class和struct用法是完全相同
在这里插入图片描述

struct和class区别

用struct定义时,所有成员默认为public
用class定义时,所有成员默认为private

#include <stdio.h>struct A
{// defualt to publicint i;// defualt to publicint getI(){return i;}
};class B
{// defualt to privateint i;// defualt to privateint getI(){return i;}
};int main()
{A a;B b;a.i = 4;printf("a.getI() = %d\n", a.getI());b.i = 4;printf("b.getI() = %d\n", b.getI());return 0;
}
D:\BaiduYunDownload\第2期 — 披荆斩棘\第16- 类的真正形态\代码\16-1.cpp	In function 'int main()':
17	9	D:\BaiduYunDownload\第2期 — 披荆斩棘\第16- 类的真正形态\代码\16-1.cpp	[Error] 'int B::i' is private
34	7	D:\BaiduYunDownload\第2期 — 披荆斩棘\第16- 类的真正形态\代码\16-1.cpp	[Error] within this context
19	9	D:\BaiduYunDownload\第2期 — 披荆斩棘\第16- 类的真正形态\代码\16-1.cpp	[Error] 'int B::getI()' is private
36	38	D:\BaiduYunDownload\第2期 — 披荆斩棘\第16- 类的真正形态\代码\16-1.cpp	[Error] within this context

实例:需求

开发一个用于四则运算的类
提供setOperator函数设置运算类型
提供setParameter函数设置运算参数
提供result函数进行运算
其返回值表示运算的合法性
通过引用参数返回结果

类的真正形态

C++中的类支持声明和实现的分离
将类的实现和定义分开
.h头文件中只有类的声明
成员变量和成员函数的声明
.cpp源文件中完成类的其他实现
成员函数的具体实现
operator.h

#ifndef _OPERATOR_H_
#define _OPERATOR_H_class 0perator
{
private:char mop;double mp1;double mp2;
piblic:bool setOperator(char op);void setParameter(double p1,double p2);bool result(double&r);
}
#endif	

Operator.cpp

#include "Operator.h"
#include "stdio.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;seitch(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
}int main()
{Operator op;double r=0;op.setOperator('/');op.setParameter(9, 3);if( op.result(r) ){printf("r = %lf\n", r);}else{printf("Calculate error!\n");}return 0;
}

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

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

相关文章

docker代理设置ssl证书_docker - 设置HTTP/HTTPS 代理

1、设置代理原因因公司安全限制&#xff0c;所有外网需配置代理后才可上网&#xff0c;但是因为宿主机上设置过代理&#xff0c;并未太过多注意此问题&#xff0c;之后run时报如下错误&#xff1a;# docker run hello-worldUnable to find image hello-world:latest locallydoc…

暴力修改SElinux权限

平台版本 SDK版本 版本名称 9.0 28 Pie (Android P) 8.1 27 Oreo(Android O)&#xff08;奥利奥&#xff09; 8.0 26 Oreo(Android O)&#xff08;奥利奥&#xff09; 7.1 25 Nougat(Android N)&#xff08;牛轧糖&#xff09; 7.0 24 Nougat(Android N)&#xff08;牛轧糖&…

分类器

sklearn分类器性能指标 分类器性能评估指标 只限于二元单元标签分类问题 可用于二元多标签分类问题的评估指标 如何将二元分类指标扩展到多类或多标签问题中去 可用于多类分类问题的评估指标(紫色的可用于多标签问题&#xff09; accuracy_score准确率 函数计算分类…

Cucumber+Rest Assured快速搭建api自动化测试平台

转载&#xff1a;http://www.jianshu.com/p/6249f9a9e9c4 什么是Cucumber&#xff1f;什么是BDD&#xff1f;这里不细讲&#xff0c;不懂的直接查看官方&#xff1a;https://cucumber.io/  什么是Rest Assured&#xff1f;传送门&#xff1a;https://github.com/rest-assured…

毕业设计论文选题系统系统用例图_基于UML的毕业设计管理系统的分析与设计

基于UML的毕业设计管理系统的分析与设计毕业设计是实现本科教学培养目标的重要环节&#xff0c;从选题到答辩一般需要四至六个月的时间&#xff0c;其间工作量很大&#xff0c;尤其需要保留大量的文件&#xff0c;以便于管理者对毕业设计工作进行监督。传统的、人工的方式管理各…

让这个该死的服务跑起来了~

#前言被该死的Openssl编译嘲讽了一个下午之前的文章说了我的那个编译的问题&#xff0c;这里说下&#xff0c;知识点有点零散&#xff0c;最后的解决也是一个同事提示&#xff0c;感觉也有点奇葩的赶脚。到目前为止&#xff0c;我现在感受到了写文章的好处&#xff0c;昨晚的问…

深度学习概述

深度学习 传统学习与深度学习 深度学习应用特点 深度学习框架比较 Tensorflow 神经元 卷积核 分类 回归 生成

Python--递归

面向函数编程 def func():print(从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚讲故事&#xff0c;讲的什么呀&#xff1f;)func() 解耦&#xff1a;尽量把不相关的功能拆开&#xff0c;用的时候再调用函数&#xff0c;增强代码重用性&#xff0c;减少代码变更的…

python相关知识介绍一种理财方法_我是如何使用python来确定理财策略的

老婆在朋友圈里看到了一条理财广告&#xff0c;一条很让人心动的广告&#xff0c;长下面这个样子。这是香港某保险公司的理财方案&#xff0c;大意是每年定投6.65万&#xff0c;投资5年&#xff0c;总共投资33万的样子&#xff0c;那么第10年&#xff0c;你将可以拿到38.6万&am…

传统神经网络

文章目录神经网络的起源&#xff1a;线性回归一个线性回归问题线性回归优化方法&#xff1a;梯度下降梯度计算梯度计算总结线性回归&#xff1a;输出线性回归&#xff1a;局限从线性到非线性非线性激励常用的非线性激励函数tanhRELULecky RELU神经元—神经网络神经网络构建神经…

[BZOJ1669][Usaco2006 Oct]Hungry Cows饥饿的奶牛

1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1000 Solved: 655 [Submit][Status][Discuss]Description Farmer John养了N(1 < N < 5,000)头奶牛&#xff0c;每头牛都有一个不超过32位二进制数的正整数编号。FJ希望奶牛…

vue抽屉_VUE组件 之 Drawer 抽屉

{{ title }}Xprops: {//是否打开display: {type: Boolean},//标题title: {type: String,default: 标题},//是否显示关闭按钮closable: {type: Boolean,default: true},//是否显示遮罩mask: {type: Boolean,default: true},//是否点击遮罩关闭maskClosable: {type: Boolean,defa…

深度学习之卷积神经网络

文章目录深度学习之卷积神经网络链式反向梯度链式法则的计算神经网络中链式法则实例二、卷积神经网络-卷积层&#xff08;一&#xff09;什么是卷积层&#xff08;二&#xff09;有什么组成受什么影响&#xff0c;有何特点卷积网络正向传播反向传播卷积和神经网络功能层深度学习…

datatype未定义是什么意思_vue.js一直提示未定义

.sum_price);}temp_status 1;}else{for(var i0;ivm.list.status 0;}vm.total_price 0;temp_status 0;}//更新数据库api.ajax({url: update_allcart_status_url,method: post,timeout: 30,dataType: json,returnAll: false,data: {values: {token: $api.getStorage(token),d…

卷积神经网络高级篇

【 文章目录Alextnet参数计算VGG alexnet增强版VGG参数计算VGG作用GoogleNet 多分辨率融合全卷积神经网络RESNET结构特性有效性结构化图片特殊处理识别效果全局部卷积网络缺陷U-net图片生成网络VGG u-netAlextnet 参数计算 VGG alexnet增强版 VGG参数计算 VGG作用 GoogleNet 多…

sx1268 中文_STM32开发笔记85: SX1268驱动程序设计(芯片唤醒)

单片机型号&#xff1a;STM32L053R8T6本系列开发日志&#xff0c;将详述SX1268驱动程序的整个设计过程&#xff0c;本篇介绍芯片唤醒驱动程序。一、RxDutyCycle模式在讲述本篇内容之前&#xff0c;我们先来看一下SX1268的一种模式RxDutyCycle&#xff0c;译为中文为接收占空比模…

LinuxGPIO操作和MTK平台GPIO

GPIO口配置是一个历史性的问题&#xff0c;不管我们使用什么MCU&#xff0c;单片机也好&#xff0c;ARM也好&#xff0c;都离不开驱动GPIO口。Linux下有一个宏&#xff0c;GPIO_GPIO_SYSFS&#xff0c;打开这个宏后&#xff0c;编译烧录到设备端&#xff0c;去看看sys/class/gp…

Linux cpu亲和力

最近在对项目进行性能优化&#xff0c;由于在多核平台上&#xff0c;所以了解了些进程、线程绑定cpu核的问题&#xff0c;在这里将所学记录一下。不管是线程还是进程&#xff0c;都是通过设置亲和性(affinity)来达到目的。对于[进程]的情况&#xff0c;一般是使用sched_setaffi…

卷积神经网络(目标分类)

文章目录目标分类基本框架数据准备数据扩充数据规范模型设计任务分类局部更改训练细节目标分类基本框架 数据准备 现有数据集的子集&#xff0c;网络采集&#xff0c;现有数据人工标注 数据扩充 原始数据切割&#xff0c;噪声颜色等像素变化&#xff0c;旋转平移 数据规范…

unity获取电磁笔压感_【WPF】获取电磁笔的压感

WPF 不仅支持触控&#xff0c;也支持笔的输入&#xff0c;比如现在比较高大上的电磁笔。便宜的板子一般不配备电磁笔&#xff0c;而是配电容笔&#xff0c;虽然也号称XXX级压感&#xff0c;但是效果自然不可与电磁笔相比。UIElement 类规范了UI元素的基本轮廓&#xff0c;在该类…