当前位置: 首页 > article >正文

c++162 类的封装和访问

怎么样管理类管理对象
在这里插入图片描述
类如何定义对象

#include<iostream>
using namespace std;

//求圆的面积
class  MyCirecle
{
public:
	double m_r;//属性  成员变量
	double m_s;
public :
	double getR()
	{
		return m_r;
	}
	void setR(double r)//成员函数
	{
		m_r = r;
	}
	double getS()
	{
		m_s = 3.14 * m_r * m_r;
		return m_s;
	}
protected:
private:
};
//类的封装
void printCircle01(MyCirecle* pC)
{
	cout << "r:" << pC->getR() << endl;
	cout << "s:" << pC->getS() << endl;


	//类封装了成员变量和成员函数 所以可以调用函数
}
void printCircle02(MyCirecle &myc)
{
	cout << myc.getS() << endl;
}
void printCircle03(MyCirecle myc)
{

}
void main()
{
	MyCirecle c1, c2;
	c1.setR(10);
	cout << "c1 s:" << c1.getS() << endl;

	printCircle01(&c1);
	cout << "hello.." << endl;
	return;
}
//面向对象 三大概念 
//封装 继承 多态
//封装:成员的对象和函数 作为一个整体   客观的把事物封装成抽象的类 并且可以把自己的数据和方法只让可信的类或者对象操作 对不可信的进行信息隐藏
//1 属性和方法 封装  2 进行访问控制 
//3 类的内部 类的外部
//4 类的访问控制关键字
//public:修饰的成员变量和函数可以在类的内部和类的外部访问
//private: 修饰的成员变量和函数 只能在内部
///protected 修饰的成员变量和函数 只在内 不在外
class  MyAdvCirecle
{
private:
	double m_r;//属性  成员变量
	double m_s;
public :
	double getR()
	{
		return m_r;
	}
	void setR(double r)//成员函数
	{
		m_r = r;
	}
	double getS()
	{
		m_s = 3.14 * m_r * m_r;
		return m_s;
	}
protected:
private:
};
void main()
{
	MyAdvCirecle c1, c2;
	//c1.m_r = 19;//这一行在类的外部 private 不能访问
	c1.setR(10);
	return;
}
class  MyAdvCirecle
{
private:
	double m_r;//属性  成员变量  内部密码 
	double m_s;
public ://可以被外部喊
	double getR()
	{
		return m_r;
	}
	void setR(double r)//成员函数
	{
		m_r = r;
	}
	double getS()
	{
		m_s = 3.14 * m_r * m_r;
		return m_s;
	}
protected:
private:
};
struct AAA
{
	int a;//  不写默认public 
	
};

在这里插入图片描述
#program one 防止传递两次
类的声明 和实现分开

#include <iostream>
using namespace std;
#include "MyTeacher.h"
void main()
{
	MyTeacher t1;
	t1.setAge(43);
	cout << t1.getAge() << endl;
	return;
}
#include "MyTeacher.h"
//函数声明换成函数实现
void MyTeacher::setAge(int age)
{
	m_age = age;
}

int MyTeacher::getAge()
{
	return m_age;
}

#pragma once //只包含一次

class MyTeacher
{
private:
	int m_age;
	char m_name[32];
public:
	void setAge(int age);
	int  getAge();
};


http://www.kler.cn/news/290687.html

相关文章:

  • 转载【FIR 线性相位系统 最小相位系统 滤波器延迟】
  • 使用Dbeaver 操作 mongodb
  • 「小明赠书活动」第五期“网安三剑客”套系图书《内网渗透技术》《渗透测试技术》《Web应用安全》
  • Luminar Neo for Mac智能图像处理软件【操作简单,轻松上手】
  • LeetCode 热题100-11 滑动窗口的最大值
  • 前端防抖和节流函数的实现原理
  • MFC的控件无法触发事件函数(ON_COMMAND_RANGE的映射范围冲突)
  • 百度翻译API翻译Qt LinguistTools的ts文件
  • 百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)
  • React 创建和嵌套组件
  • 策略规划:在MySQL中实现数据恢复的全面指南
  • [Python图论]在用图nx.shortest_path求解最短路径时,节点之间有多条边edge,会如何处理?
  • 【MySQL】索引使用规则——(覆盖索引,单列索引,联合索引,前缀索引,SQL提示,数据分布影响,查询失效情况)
  • Proteus 仿真设计:开启电子工程创新之门
  • Unity3D中控制3D场景中游戏对象显示层级的详解
  • 构建数据恢复的硬件基础:MySQL中的硬件要求详解
  • draw.io图片保存路径如何设置
  • linux(ubuntu)安装QT-ros插件
  • Ferrari求解四次方程
  • VTK随笔十三:QT与VTK的交互
  • jupyter 笔记本中如何判定bash块是否执行完毕
  • CentOS7 yum 报错解决方案
  • FFmpeg源码:get_audio_frame_duration、av_get_audio_frame_duration2函数分析
  • Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击
  • 鸿蒙(API 12 Beta6版)图形【NativeImage开发指导 (C/C++)】方舟2D图形服务
  • git---gitignore--忽略文件
  • 【C++】对比讲解构造函数和析构函数
  • 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)
  • idea对项目中的文件操作没有权限
  • 海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust