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

类和对象project3

类和对象

C++面向对象的三大特性:封装,继承,多态
C++认为万事万物都皆为对象,对象上有其属性
具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类

封装(project3 filename06 project3 filename07 )

封装的意义:1将属性和行为作为一个整体,表现生活中的事物(project filename06)
class Student {
public://公共权限
//类中的属性和行为 我们统一称为 成员
//属性 成员属性 成员变量
//行为 成员函数 成员方法
//属性
string m_name;
int m_id;
//行为 显示姓名和学号
void func9() {
cout << m_name << endl;
cout << m_id << endl;
}
//给姓名赋值
void setName(string name) {
m_name = name;
}
//给学号赋值
void setId(int id) {
m_id = id;
}

};
int main() {
Student S;//创建一个具体学生 实例化对象
S.setName("安稳");
S.setId(123);
S.func9();
system("pause");
return 0;
}
封装的意义:2将属性和行为加以权限控制 (project filename07)
在类的设计当中 可以把属性和行为放在不同的权限下,加以控制
class Hero {
public :
string m_name;
protected:
string m_car;
private:
int m_password;
public:
void func() {
m_name = "张三";
m_car = "奔驰";
m_password = 888888;
}
};
int main() {
Hero h1;
h1.m_name = "张三";
h1.m_car = "奔驰";//不可以访问
h1.m_password = 888888;//不可以访问
h1.func();
system("pause");
return 0;
}

访问权限有三种

1public 公共权限 成员 类内可以访问 类外可以访问
2protected 保护权限 成员 类内可以访问 类外不可以访问 父类和子类
3private 私有权限 成员 类内可以访问 类外不可以访问

类和对象-封装-c++中class和struct的区别

在C++中 struct和class唯一区别就在与默认的访问权限不同
区别:
struct默认权限公开
class默认权限为私有

成员属性设置为私有(project3 filename8)

优点1:将所有成员属性设置为私有 可以自己控制读写权限
优点2:对于写权限,我们可以检测数据的有效性
using namespace std;
class Person{
public:
//设置姓名
void setName(string name) {
m_Name = name;
}
//获取姓名
string getName() {
return m_Name;
}
private:
string m_Name;//姓名 可读可写
int m_Age;//年龄 只读 get
string m_Idol;//偶像 只写 set

};
int main() {
Person P;
//P.m_Name= "张三 ";
P.setName("张三");
cout << P.getName() << endl;
system("pause");
return 0;
}

类和对象-封装-设计案例1-立方体类project03 FileName09 成员函数和全局函数判断用法和区别

include

include

using namespace std;
class Cube {
public:
void setL(int l) {
m_L = l;
}
int getL() {
return m_L;
}
void setW(int w) {
m_W = w;
}
int getW() {
return m_W;
}
void setH(int h) {
m_H = h;
}
int getH() {
return m_H;
}
//获取立方体面积
int calculateS() {
return 2 * m_L * m_W + 2 * m_W * m_H + 2 * m_L * m_H;
}
//获取立方体体积
int calculateV() {
return m_L * m_H * m_W;
}
//成员函数判断
bool isSameByclass(Cube &c) {
if (m_Lc.getL() && m_H == c.getH() && m_W c.getW()) {
return true;
}
else {
return false;
}
}
private:
int m_L;
int m_W;
int m_H;
};
//利用全局函数进行判断
bool isSame(Cube &c1, Cube &c2) {
if (c1.calculateS()==c2.calculateS()&& c1.calculateV() == c2.calculateV())
{
return true;
}
else {
return false;
}
}
int main() {
Cube c1;
c1.setL(10);
c1.setH(10);
c1.setW(10);
cout << c1.calculateS() << endl;
cout << c1.calculateV() << endl;
Cube c2;
c2.setL(10);
c2.setH(10);
c2.setW(10);
bool ret = isSame(c1,c2);
//cout<<isSame(c1, c2)<<endl;
if (ret) {
cout << "真的" << endl;
}
else {
cout << "假的" << endl;
}
ret = c1.isSameByclass(c2);
if (ret) {
cout << "真的" << endl;
}
else {
cout << "假的" << endl;
}

system("pause");
return 0;

}

类和对象-封装-设计案例2-点和圆的关系project03 FileName10

类也可以作为类里面的成员
类也分文件

http://www.hskmm.com/?act=detail&tid=39488

相关文章:

  • 2025年透声膜厂家推荐排行榜,防水透声膜,防水透气透声膜,手表透气透声膜,耳机透气透声膜,智能手环透声膜公司推荐
  • 2025年冠晶石厂家推荐排行榜,外墙冠晶石,内墙冠晶石,防霉冠晶石,水包水冠晶石,水包砂冠晶石,耐污冠晶石,自洁冠晶石公司推荐
  • 安装配置 Claude Code Router 备忘录
  • 2025年包装机厂家权威推荐榜单:全自动包装机,真空包装机,食品包装机,立式包装机源头厂家综合实力解析
  • 2025年自动包装机厂家推荐排行榜:食品包装机,药品包装机,五金配件包装机,全自动包装设备公司精选
  • 2025 年 10 月系统门窗厂商榜单揭晓,专业智造实力与品牌保障口碑优选
  • 2025年环境试验设备厂家推荐排行榜,冷热冲击/高低温/快速温变试验箱,氙灯/紫外耐候气候环境试验箱,步入式/恒温恒湿试验箱,高压加速老化/HAST/PCT试验箱,机械环境/淋雨/砂尘试验箱公司推荐
  • OI 笑传 #23
  • 2025年半自动包装机厂家权威推荐榜:食品/医药/化工行业专用机型精选,高效稳定与性价比之选
  • [ java 锁 - 04 - Integer o = 1 作为 锁的问题]
  • 2025年提升机厂家权威推荐榜:自动提升机、垂直提升机、斗式提升机、物料提升设备源头厂家精选
  • 2025年自动提升机厂家权威推荐榜单:专业制造与高效解决方案深度解析
  • [java 锁 - 03 重入写法 ]
  • 2025年包装机厂家权威推荐榜:自动包装机,半自动包装机,高效包装设备源头厂家精选与选购指南
  • golang: gin项目常用第三方库
  • ssh: 连接报错
  • python3: ubuntu上安装时报错: No module named zlib
  • OI 笑传 #22
  • 实用指南:Golang 中的字符串:常见错误和最佳实践
  • 2025年自动上料机厂家推荐排行榜:螺旋上料机,真空上料机,粉末上料机,颗粒上料机专业制造商精选指南
  • 接口幂等性
  • 20232315 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025长沙1024程序员日:为开发者职业发展插上腾飞之翼
  • 2067C cf1500
  • 兼职日志-mysqlpython出图
  • 彻底清除浏览器缓存
  • 2025东莞包装机/自动包装机/半自动包装机厂家推荐垚林机械,精准高效耐用!
  • 使用pyautogui完成简单的游戏功能--皇室战争降杯
  • 2025 年 10 月系统门窗厂商榜单揭晓,专业系统智造与品牌保障口碑优选
  • 2025 年 10 月系统门窗厂商榜单揭晓,专业工艺制造与品牌保障口碑优选