20240413,类和对象

对象:一切都可为对象,类:相同特性的对象;面向对象特性:封装,继承,多态

一,封装

CLASS 类名 { 访问权限 :属性/行为 }
实例化:通过一个类,创建一个对象

#include<iostream>
using namespace std;
#define PAI 3.14159

class  Circle //创建⚪类
{
public://访问权限:公共权限
	int m_r;//属性:半径
	double calculateZC()//行为:获取圆的周长,此用函数
	{
		return 2 * PAI * m_r;
	}
};
int main()
{
	Circle c1;//通过⚪类,创建对象
	c1.m_r = 10;//赋值
	cout << "⚪的周长为" << c1.calculateZC() << endl;
	return 0;
	system("pause");
}

属性+行为--》成员,属性——成员属性,成员变量;行为——成员函数,成员方法

#include<iostream>
using namespace std;
#define PAI 3.14159

class Student
{
public:
	string s_name;//属性
	int s_id;
	void showstudent()//行为
	{
		cout << "姓名\t" << s_name << endl;
		cout << "学号\t" << s_id << endl;
	}
	void setname(string name)
	{
		s_name = name;
	}
	void setid(int id)
	{
		s_id = id;
	}
};
int main()
{
	Student s1;
	s1.s_name = "王五";
	s1.s_id = 1242;
	s1.showstudent();

	/*cin >> s1.s_name >> s1.s_id;
	s1.showstudent();*/

	s1.setname("张三");
	s1.showstudent();
	s1.setid(78992342394);
	s1.showstudent();

	return 0;
	system("pause");
}
1.1 三种权限

类内外都可:PUBLIC ,
类内可,类外不可:PRIVATE (儿子可以访问父亲的保护内容), PROTECTCED (儿子不可以访问父亲的私有内容)

#include<iostream>
using namespace std;
#define PAI 3.14159

class Person
{
public:
	string p_name;
protected:
	string p_car;
private:
	int p_password;

public:
	void func()//类内访问
	{
		p_name = "张三";
		p_car ="小米SU7";
		p_password = 4234235;
		cout << p_name << " " << p_car << " " << p_password << endl;
	}
};
int main()
{
	Person p1;
	p1.func();
	p1.p_name = "大哥";
	//p1.p_car = "小米SU7";类外不可访问
	//p1.p_password = 4234235;

	p1.func();
	//哈哈,运行这个函数就会赋值
	cout << p1.p_name << endl;
	p1.p_name = "大哥";
	cout << p1.p_name << endl;

	return 0;
	system("pause");
}
1.2 STRUCTCLASS的区别

 STRUCT默认权限是公共,CLASS默认权限是私有

#include<iostream>
using namespace std;
#define PAI 3.14159

class P1//默认私有
{
	int m_a;
};
struct P2//默认公共
{
	int m_a;
};
int main()
{
	P1 pp1;
	//pp1.m_a = 3245;不可访问
	P2 pp2;
	pp2.m_a = 3245;
	return 0;
	system("pause");
}
1.3 成员属性设置为私有

优点:自己控制读写权限;对于写权限,可以检测数据的有效性

#include<iostream>
using namespace std;
#define PAI 3.14159

class P1//默认私有
{
public:
	void setname(string name)//设置NAME
	{
		m_name = name;
	}
	string getname()//读取NAME
	{
		return m_name;
	}
	int getage()
	{
		return m_age;
	}
	void settage(int age)
	{
		if (age < 0 || age>150)
		{
			cout << "年龄" << age << "数据有误,输入失败" << endl;
			return;
		}
		else
		{
			m_age = age;
		}
	}
	void setidol(string idol)
	{
		m_idol = idol;
	}
private:
	string m_name;//可读可写
	int m_age=18;//只读
	string m_idol;//只写
};

int main()
{
	P1 per1;
	per1.setname("拉拉");
	cout << per1.getname() << endl;

	//m_age = 20;
	//per1.setage(20);没有设置
	cout << per1.getage() << endl;
	per1.settage(900);
	cout << per1.getage() << endl;
	per1.settage(90);
	cout << per1.getage() << endl;

	per1.setidol("大大");
	//cout << per1.getidol("导弹无法去") << endl;没有设置

	return 0;
	system("pause");
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

文章目录 一、简介二、部署1、mysql数据迁移2、docker部署redis3、docker部署tomcat并运行war包 三、报错四、解决1 分析2 解决 结语 一、简介 最近参与开发一个项目&#xff0c;其中一部分系统需要迁移。从阿里云迁移到实体服务器&#xff0c;使用docker部署。系统使用Java语…

11 Php学习:函数

PHP 内建函数Array 函数 PHP Array 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。 创建 PHP 函数 当您需要在 PHP 中封装一段可重复使用的代码块时&#xff0c;可以使用函数。下面详细解释如何创建 PHP 函数并举例说明。 创建 PHP 函数的语法 PHP 函数的基…

TCP-IP详解卷一:协议——阅读总结

该内容适合程序员查看 第1章 概述 1.1 引言 WAN全称是 Wide Area Network&#xff0c;中文名为广域网。 LAN全称是 Local Area Network&#xff0c;中文名为局域网。 1.2分层 ICP/IP协议族通常被认为是一个四层协议系统 分层协议应用层Telnet、FTP和e-mail运输层TCP和UDP网…

shell 调用钉钉通知

使用场景&#xff1a;机器能访问互联网&#xff0c;运行时间任务后通知使用 钉钉建立单人群 手机操作&#xff0c;只能通过手机方式建立单人群 电脑端 2. 配置脚本 #!/bin/bash set -e## 上图中 access_token字段 TOKEN KEYWORDhello # 前文中设置的关键字 function call_…

机器学习——自动驾驶

本章我们主要学习以下内容: 阅读自动驾驶论文采集数据根据论文搭建自动驾驶神经网络训练模型在仿真环境中进行自动驾驶 论文介绍 本文参考自2016年英伟达发表的论文《End to End Learning for Self-Driving Cars》 📎end2end.pdf

Redis从入门到精通(十七)多级缓存(二)Lua语言入门、OpenResty集群的安装与使用

文章目录 前言6.4 Lua语法入门6.4.1 初识Lua6.4.2 Hello World6.4.3 变量6.4.3.1 Lua的数据类型6.4.3.2 声明变量 6.4.4 循环6.4.5 函数6.4.6 条件控制 6.5 实现多级缓存6.5.1 安装和启动OpenResty6.5.2 实现ajax请求反向代理至OpenResty集群6.5.2.1 反向代理配置6.5.2.2 OpenR…

chromium 协议栈 cronet ios 踩坑案例

1、请求未携带 Accept-Language http header 出现图片加载失败 现象&#xff1a; 访问 https://www.huawei.com/cn/?ic_mediumdirect&ic_sourcesurlent 时出现图片加载失败的问题 预期结果&#xff1a; 原因&#xff1a; 网络库删除了添加 Accept-Language header 的逻…

openssl 如何从pfx格式证书 获取证书序列号信息

已知&#xff1a;一个个人证书文件 test.pfx 求&#xff1a;如何通过openssl查看其对应证书的序列号信息&#xff1f; 踩坑之&#xff1a;unable to load certificate! openssl x509 -in xxx.cert -noout -serial 命令可查看证书序列号&#xff0c;但是这个-in 的输入必须是私…

Android开发:Camera2+MediaRecorder录制视频后上传到阿里云VOD

文章目录 版权声明前言1.Camera1和Camera2的区别2.为什么选择Camera2&#xff1f; 一、应用Camera2MediaPlayer实现拍摄功能引入所需权限构建UI界面的XMLActivity中的代码部分 二、在上述界面录制结束后点击跳转新的界面进行视频播放构建播放界面部分的XMLActivity的代码上述代…

基于Python的深度学习的中文情感分析系统(V2.0),附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

2024年MathorCup数学建模B题甲骨文智能识别中原始拓片单字自动分割与识别研究解题文档与程序

2024年第十四届MathorCup高校数学建模挑战赛 B题 甲骨文智能识别中原始拓片单字自动分割与识别研究 原题再现&#xff1a; 甲骨文是我国目前已知的最早成熟的文字系统&#xff0c;它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值&#xff0c;不仅对中国文…

【学习心得】神经网络知识中的符号解释②

我在上篇文章中初步介绍了一些神经网络中的符号&#xff0c;只有统一符号及其对应的含义才能使我自己在后续的深度学习中有着一脉相承的体系。如果对我之前的文章感兴趣可以点击链接看看哦&#xff1a; 【学习心得】神经网络知识中的符号解释①http://t.csdnimg.cn/f6PeJ 一、…

010、Python+fastapi,第一个后台管理项目走向第10步:ubutun 20.04下安装ngnix+mysql8+redis5环境

一、说明 先吐槽一下&#xff0c;ubuntu 界面还是不习惯&#xff0c;而且用的是云电脑&#xff0c;有些快捷键不好用&#xff0c;只能将就&#xff0c;谁叫我们穷呢&#xff1f; 正在思考怎么往后进行&#xff0c;突然发现没安装mysql 和redis&#xff0c;准备安装&#xff0…

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测

组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测 目录 组合预测 | Matlab实现ICEEMDAN-SMA-SVM基于改进完备集合经验模态分解-黏菌优化算法-支持向量机的时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本…

kali工具----域名IP及路由跟踪

域名IP及路由跟踪 测试网络范围内的IP地址或域名也是渗透测试的一个重要部分。通过测试网络范围内的IP地址或域名&#xff0c;确定是否有人入侵自己的网络中并损害系统。不少单位选择仅对局部IP基础架构进行渗透测试&#xff0c;但从现在的安全形势来看&#xff0c;只有对整个I…

未来计算机的发展趋势是什么?

未来计算机的发展趋势是多方面的,涵盖了硬件、软件、体系结构以及计算范式等多个层面。以下是一些预期的趋势: 1. 量子计算: 随着量子理论的不断成熟和技术的进步,量子计算机将可能解决传统计算机难以处理的问题,比如药物发现、材料科学、复杂系统模拟等领域。量子计算的…

UT单元测试

Tips&#xff1a;在使用时一定要注意版本适配性问题 一、Mockito 1.1 Mock的使用 Mock 的中文译为仿制的&#xff0c;模拟的&#xff0c;虚假的。对于测试框架来说&#xff0c;即构造出一个模拟/虚假的对象&#xff0c;使我们的测试能顺利进行下去。 Mock 测试就是在测试过程…

SQL语言自用(持续更新)+实验记录

课本:《数据库原理及其应用教程》&#xff08;第四版&#xff09; (主编)黄德才&(副主编)陆亿红 实验&#xff1a;学校实验课材料 其他&#xff1a; [ ]表示可以被删除&#xff0c;也表示可以被替换&#xff0c;请自行判断。如果有一些截图或照片&#xff0c;是暂时懒得整…

基于SpringBoot的“滴答拍摄影项目”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“滴答拍摄影项目”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 滴答拍摄影项目结构图 管理员登录首页界面图 用…

[lesson24]经典问题解析二

经典问题解析二 关于析构的疑问 当程序中存在多个对象的时候&#xff0c;如何确定这些对象的析构顺序&#xff1f;单个对象创建时构造函数的调用顺序 1.调用父类的构造过程2.调用成员变量的构造函数(调用顺序于声明顺序相同)调用类自身的构造函数 析构函数与对应的构造函数的…