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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux 中的 wget 命令介绍以及使用
  • 行空板上YOLO和Mediapipe视频物体检测的测试
  • linux搭建深度学习平台
  • MAC配置chromedriver
  • IP学习-Sixday
  • 将语义分割的标签转换为实例分割(yolo)的标签
  • Git-如何将本地项目推到GitHub
  • Linux中的echo命令
  • 【LabVIEW学习篇 - 18】:人机界面交互设计02
  • Chrome extension 谷歌浏览器插件 YouTube 监听地址栏 url 变化
  • 【Qt】Qt和JavaScript使用QWebChannel交互
  • PyTorch库学习之nn.ConvTranspose2d(模块)
  • 【每日一题】LeetCode 1652.拆炸弹(数组、滑动窗口)
  • [数据集][目标检测]轮胎检测数据集VOC+YOLO格式4629张1类别
  • Android架构组件中的MVVM应用
  • 《剑指offer》分解让复杂问题更简单
  • css的样式优先级
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java 多线程编程之:notify 和 wait 用法
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 半理解系列--Promise的进化史
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • ------- 计算机网络基础
  • 入手阿里云新服务器的部署NODE
  • 使用权重正则化较少模型过拟合
  • 微信支付JSAPI,实测!终极方案
  • 线上 python http server profile 实践
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # centos7下FFmpeg环境部署记录
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (1)常见O(n^2)排序算法解析
  • (11)MSP430F5529 定时器B
  • (145)光线追踪距离场柔和阴影
  • (HAL库版)freeRTOS移植STMF103
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二十三)Flask之高频面试点
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (五)Python 垃圾回收机制
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)VirtualBox安装增强功能
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .Net接口调试与案例
  • .Net小白的大学四年,内含面经
  • .NET周刊【7月第4期 2024-07-28】