C++核心编程类和对象详解
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本篇内容介绍了"C++核心编程类和对象详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录1.封装
千家信息网最后更新 2025年11月14日C++核心编程类和对象详解
本篇内容介绍了"C++核心编程类和对象详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
目录
1.封装
1.1封装的意义
封装意义一:
封装意义二
1.2 struct 和 class 区别
1.3 成员属性设置为私有
C++面向对象三大特性:封装、继承、多态
1.封装
1.1封装的意义
将属性和行为作为一个整体
将属性和行为加以权限控制
封装意义一:
语法:class 类名{ 访问权限: 属性 / 行为 };
//实例1#define _CRT_SECURE_NO_WARNINGS 1//求圆的周长#includeusing namespace std;#define pi 3.14class circle{public: int m_d;//直径 double calculate() { return pi*m_d; }};int main(){ circle c1; c1.m_d = 10; cout << "圆周长为" << c1.calculate() << endl; system("pause"); return 0;}
//实例2#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;#include class Student{public: string m_name; int m_num; void showStudent() { cout << " 姓名:" << "\t" << m_name << " 学号:" << m_num << endl; } void setname(string name) { m_name = name; } void setnum(int num) { m_num = num; }};int main(){ Student s1; s1.setname("zhangsan"); s1.setnum(2001); s1.showStudent(); Student s2; s2.setname("lisi"); s2.setnum(2002); s2.showStudent(); system("pause"); return 0;}
总结:类中的 属性 和 行为 统一称为 成员
类中的 属性 又称为 成员属性 成员变量
类中的 行为 又称为 成员函数 成员方法
封装意义二
访问权限有三种
公共权限: public 成员类内可以访问,类外可以访问
保护权限: protected 成员类内可以访问,类外不可以访问 儿子可以访问父亲中的保护内容
私有权限: private 成员类内可以访问,类外不可以访问 儿子不可以访问父亲中的保护内容
#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;#include class Student{public: string m_name;protected: int m_num;private: int m_age;public: void func() { m_name = "lili"; m_num = 1; m_age = 30; }private: void func1() { m_name = "lili"; m_num = 1; m_age = 30; }};int main(){ Student s1; s1.m_name = "lilllll"; //s1.m_num = 2;//不可访问 //s1.m_age = 20;//不可访问 s1.func(); //s1.func1();//不可访问 system("pause"); return 0;}
1.2 struct 和 class 区别
在C++中 struct 和 class 区别在于 默认的访问权限不同
struct 默认权限为公共
class 默认权限为私有
#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;class C1{ string m_a;};struct C2{ string m_b;};int main(){ //C1 c1; //c1.m_a = "lili";//不可访问 C2 c2; c2.m_b = "lili"; system("pause"); return 0;}
1.3 成员属性设置为私有
优点:
将所有成员属性设置为私有,可以自己控制读写权限
对于写权限,我们可以检测数据的有效性
#define _CRT_SECURE_NO_WARNINGS 1#include#include using namespace std;class C1{public: void setname(string name) { m_name = name; } string getname() { return m_name; } int getnum() { return m_num; } void setage(int age) { m_age = age; }private: string m_name; int m_num; int m_age;};int main(){ C1 c; c.setname("yangyang");//可写 cout << c.getname() << endl;//可读 cout << c.getnum() << endl;//只读 c.setage(30);//只写 system("pause"); return 0;}
好的,到这里封装就算是学到手了,可以进行两个小案例:
#define _CRT_SECURE_NO_WARNINGS 1#include#include using namespace std;class Cube{public: void setchang(int chang) { m_c = chang; } void setkuan(int kuan) { m_k = kuan; } void setgao(int gao) { m_g = gao; } int getchang() { return m_c; } int getkuan() { return m_k; } int getgao() { return m_g; } int S() { return 2 * (m_c*m_g + m_c*m_k + m_g*m_k); } int V() { return m_c*m_g*m_k; } bool isSamebyclass(Cube &c) { if (m_c == c.getchang() && m_g == c.getgao() && m_k == c.getkuan()) { return true; } return false; }private: int m_c; int m_k; int m_g;};bool isSame1(Cube &c1, Cube &c2){ if (c1.getchang() == c2.getchang() && c1.getgao() == c2.getgao() && c1.getkuan() == c2.getkuan()) { return true; } return false;}int main(){ Cube c1; c1.setchang(10); c1.setkuan(10); c1.setgao(10); cout << "面积:" << c1.S() << endl; cout << "体积:" << c1.V() << endl; Cube c2; c2.setchang(11); c2.setkuan(11); c2.setgao(11); cout << "面积:" << c2.S() << endl; cout << "体积:" << c2.V() << endl; bool ret = isSame1(c1, c2); if (ret) { cout << "全局函数判断:两个立方体相等" << endl; } else { cout << "全局函数判断:两个立方体不相等" << endl; } ret = c1.isSamebyclass(c2); if (ret) { cout << "成员函数判断:两个立方体相等" << endl; } else { cout << "成员函数判断:两个立方体不相等" << endl; } system("pause"); return 0;}
#define _CRT_SECURE_NO_WARNINGS 1#include#include using namespace std;class Point{public: void setX(int x) { m_x = x; } int getX() { return m_x; } void setY(int y) { m_y = y; } int getY() { return m_y; }private: int m_x; int m_y;};class Circle{public: void setR(int r) { m_r = r; } int getR() { return m_r; } void setcenter(Point center) { m_center = center; } Point getcenter() { return m_center; }private: int m_r; Point m_center;};void C_and_P(Circle &c, Point &p){ int distance = (c.getcenter().getX() - p.getX())*(c.getcenter().getX() - p.getX()) + (c.getcenter().getY() - p.getY())* (c.getcenter().getY() - p.getY()); int doubleR = c.getR()*c.getR(); if (distance==doubleR) { cout << "点在圆上" << endl; } else if (distance "C++核心编程类和对象详解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
成员
权限
封装
属性
意义
两个
函数
行为
私有
C++
内容
立方体
对象
保护
核心
编程
体积
儿子
全局
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器流量监测
ns黑魂重置服务器
数据库循环死锁
智汇云校网络安全
河北区数据网络技术诚信合作
大学数据库安全策略
数据服务器
网络技术员交易平台
浦东新区市场网络技术服务哪家好
什么游戏服务器最流畅
四川简阳网络安全宣传周
安宁服务器上门回收
宝山区通信网络技术服务
佛山金通软件开发有限公司
网络安全马克笔
软件开发工程师编程语言排行
日本服务器名称
中外论文数据库
上海禄旺网络技术有限公司
安徽服务器机柜订做
方舟手游谷歌账号服务器错误
河南铭复网络技术有限公司招聘
数据库访问被限制
e5 v4服务器主板通用吗
广东工业软件开发代理价钱
软件开发专业考研究生
停车场管理数据库课程设计
数据库入仓
上海爱深泽软件开发
江苏机械成本软件开发平台