20240413,类和对象

news2025/6/7 14:18:51

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

一,封装

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");
}

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

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

相关文章

策略者模式(代码实践C++/Java/Python)————设计模式学习笔记

文章目录 1 设计目标2 Java2.1 涉及知识点2.2 实现2.2.1 实现两个接口飞行为和叫行为2.2.2 实现Duck抽象基类&#xff08;把行为接口作为类成员&#xff09;2.2.3 实现接口飞行为和叫行为的具体行为2.2.4 具体实现鸭子2.2.5 模型调用 3 C&#xff08;用到了大量C2.0的知识&…

C语言-详解内存函数

文章目录 1.memcpy使用和模拟实现1.1 memcpy函数的使用规则1.2 memcpy函数的使用1.2 模拟实现memcpy函数 2.memmove 函数的使用和模拟实现2.1 memmove 函数使用规则2.2 memmove函数的使用2.3 模拟实现memmove函数2.3.1 从后往前移2.3.2 从前往后移 2.4 算法实现2.4.1 从前往后移…

C# 图形化的导航界面的设计方法

目录 一、涉及到的知识点 1、BackColor属性 2、FlatStyle属性 3、TextlmageRelation属性 4、其它共性设计 二、设计实例 1、 Resources.Designer.cs 2、Form1.Designer.cs 3、Form1.cs 4、运行结果 图形化导航用于代替文字导航&#xff0c;比如对Button控件 进行图形…

NzN的数据结构--归并排序及计数排序

篇接上文&#xff0c;今天要学习的是归并排序以及非比较排序--计数排序。这么励志的日更博主&#xff0c;你怎么能不三连一下呢&#xff1f; 目录 一、归并排序 1. 递归实现 2. 非递归实现 3. 特性总结 二、非比较排序--计数排序 三、排序算法复杂度及稳定性分析 一、归并…

vue3+element plus图片预览点击按钮直接显示图片的预览形式

1 需求 直接上需求&#xff1a; 我想要直接点击下面这个“预览”按钮&#xff0c;然后呈现出预览图片的形式 ok&#xff0c;需求知道了&#xff0c;下面让我们来看看如何实现吧 ~ 2 实现 template部分 <el-buttontype"primary"size"small"click&qu…

DRF多表关联的序列化和反序列化

DRF多表关联的序列化和反序列化 目录 DRF多表关联的序列化和反序列化序列化定制字段source一对多的序列化 多表关联的序列化方式1&#xff1a;在表模型中定义方法方式2&#xff1a;定制返回格式SerializerMethodField方式3&#xff1a;子序列化 多表关联的反序列化反序列化保存…

Ubuntu 上配置静态IP地址

Ubuntu 上配置静态IP地址编辑网络配置文件配置静态IP地址应用配置更改 Ubuntu 上配置静态IP地址 在终端中&#xff0c;运行以下命令来编辑网络配置文件 编辑网络配置文件 sudo cat /etc/netplan/01-netcfg.yaml在编辑器中&#xff0c;找到用于您的网络接口的配置部分。例如…

使用阿里云试用Elasticsearch学习:创建仪表板pivot、搜索discover和仪表板dashboard

文档&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/transform-examples.html#example-clientips 在kibana左栏打开Transforms&#xff0c;并创建Transforms&#xff08;转换&#xff09; Management > Stack Management > Data > T…

【Qt】界面优化

目录 一、QSS 1.1 基本语法 1.2 QSS设置方法 1.2.1 指定控件样式设置 1.2.2 全局样式设置 1.2.3 从文件加载样式表 1.2.4 使用Qt Designer编辑样式 1.3 选择器 1.3.1 介绍 1.3.2 子控件选择器 1.3.3 伪类选择器 1.4 样式属性(盒模型) 1.5 代码示例(登录界面) 二、…

自动化测试之httprunner框架hook函数实操

本篇介绍httprunner中hook函数的使用&#xff0c;以及通过编程能力实现建设自动化测试更全面的场景覆盖 前置&#xff1a; 互联网时代让我们更快的学习到什么是Httprunner 正文&#xff1a; 经过上文了解到这个框架怎么使用之后&#xff0c;我们开始来探讨一下我们为什么要用…

SecureCRT通过USB-Servial ch340串口无法连接单片机

通过USB To TTL连线 STM32F103-PRO&#xff0c;烧制程序到单片机上&#xff0c;通过SecureCRT通过USB-Servial ch340串口无法链接RS232升USB转TTL连接正确 开发板连接正确 问题&#xff1a;SecureCRT串口连接没有反应 问题分析&#xff1a;1、检查ch340串口驱动 查看设备管…

海洋信息管理系统:守护蓝色星球,促进海洋经济新发展

海洋&#xff0c;覆盖地球表面超过七成的广阔水域&#xff0c;是生命之源&#xff0c;也是经济发展的重要空间。然而&#xff0c;随着人类活动的增加&#xff0c;海洋生态环境面临严峻挑战&#xff0c;海洋资源的可持续利用成为全球关注的焦点。在这样的背景下&#xff0c;构建…

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

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

一步一步学习使用 MediaSource 实现动态媒体流

学习前的参考 为什么视频网站的视频链接地址是blob&#xff1f; - 掘金 MediaSource - Web API 接口参考 | MDN 在示例中前往下载源代码&#xff1a; netfix/demo/bufferWhenNeeded.html at gh-pages nickdesaulniers/netfix GitHub 下载 demo 目录&#xff0c;对 bufferW…

量子信息产业生态研究(一):关于《量子技术公司营销指南(2023)》的讨论

写在前面。量子行业媒体量子内参&#xff08;Quantum Insider&#xff09;编制的《量子技术公司营销指南》是一本实用的英文手册&#xff0c;它旨在帮助量子科技公司建立有效的营销策略&#xff0c;同时了解如何将自己定位成各自的行业专家。本文对这篇指南的主要内容进行了翻译…

C语言中的编译和链接

系列文章目录 文章目录 ​编辑 系列文章目录 文章目录 前言 一、 翻译环境和运行环境 二、 翻译环境 2.1 编译 2.1.1 预处理 2.1.2 编译 2.1.2.1 词法分析 : 2.1.2.2 语法分析 2.1.2.3 语义分析 2.1.3 汇编 2.2 链接 三、运行环境 前言 在我们平常的写代码时&#xff0c;我们很…

set 类 和 map 类

1. 关联式容器 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是<key, value>结构的 键值对&#xff0c;在数据检索时比序列式容器效率更高 2. 键值对 用来表示具有一一对应关系的一种结构&#xff0c;该结构中一般只包含…

你的系统是如何跟MySQL打交道的

1、Java 工程师眼中的数据库是什么东西? 从今天开始&#xff0c;我们将要开始一个MySQL的专栏&#xff0c;一起来研究MySQL数据库的底层原理和各种实践案例&#xff0c;以及互联网公司的技术方案。 现在我们先来看看&#xff0c;在一个Java工程师眼中的数据库是什么东西? 平时…

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException:

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException&#xff1a; Caused by: java.lang.ClassNotFoundException: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInter1 分析问题 控制台报错说明我们引入的 mybatis-plus 的依赖里找不到com.baom…

怎么恢复删除的回收站数据?分享多种恢复方法

在日常使用电脑的过程中&#xff0c;回收站是我们经常打交道的一个功能。它帮助我们管理不再需要的文件&#xff0c;但有时候&#xff0c;我们可能会不小心删除了重要文件&#xff0c;或者误清空了回收站。那么&#xff0c;面对这种情况&#xff0c;我们该如何恢复删除的回收站…