C++基础 C++对类的管理——封装
程序员文章站
2023-12-29 12:44:10
1.封装 两层含义: (1)把事物的属性和方法结合成个整体。 (2)对类的属性和方法进行访问控制,对不信的进行信息屏蔽。 2.访问控制 控制分为 类的内部,类的外部。 public 修饰的成员,可在内部和外部访问。 private 修饰的成员,只能在内部访问。 封装就像一个手表,里面有很复杂的功能, ......
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 ; }