C++基础 C++对类的管理——封装
2018-10-19 06:11:26来源:博客园 阅读 ()
1.封装
两层含义:
(1)把事物的属性和方法结合成个整体。
(2)对类的属性和方法进行访问控制,对不信的进行信息屏蔽。
2.访问控制
控制分为 类的内部,类的外部。
public 修饰的成员,可在内部和外部访问。
private 修饰的成员,只能在内部访问。
封装就像一个手表,里面有很复杂的功能,但输出只有表盘,输入只能转转轴。
3. 类与对象
抽象一个类,用类去定义对象。
类是数据类型,是抽象的,对象是具体的变量,占用内存空间。
4. struct 和 class 关键字的区别
在 struct 定义的类中,所有成员的默认访问控制为 public
在 class 中 为 private。
5. 练习
(1)设计立方体类(cube),求出立方体的面积和体积,求两个立方体,是否相等。
#include <iostream> using namespace std; class cube{ private: double length; double high; double width; public: double getLength() { return length; } double getHigh() { return high; } double getWidth() { return width; } void setLength(double length) { this->length = length; } void setWidth(double width) { this->width = width; } void setHigh(double high) { this->high = high; } double getArea() { return 0; } double getVolume() { return 0; } bool isEqualCube1(class cube c); bool isEqualCube2(class cube *c); bool isEqualCube3(class cube &c); protected: }; bool cube::isEqualCube1(class cube c) { /* 下面的函数调用体现出封装的强大,因为复制的参数,不仅带有属性,还有函数 */ if (c.getLength() == this->length && c.getHigh() == this->high && c.getWidth() == this->width) return true; else return false; } bool cube::isEqualCube2(class cube *c) { if (c->getLength() == this->length && c->getHigh() == this->high && c->getWidth() == this->width) return true; else return false; return true; } bool cube::isEqualCube3(class cube &c) { if (c.getLength() == this->length && c.getHigh() == this->high && c.getWidth() == this->width) return true; else return false; } void main(void) { class cube c1, c2; c1.setHigh(1); c1.setLength(1); c1.setWidth(1); c2.setHigh(2); c2.setLength(2); c2.setWidth(2); cout << "c1's area = " << c1.getArea() << endl;; cout << "c2's volume = " << c2.getVolume() << endl; if (c1.isEqualCube1(c2)) cout << "c1 == c2" << endl; else cout << "c1 != c2" << endl; system("pause"); return ; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:关于高斯消元
下一篇:set容器几个关键函数
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash