欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++基础 C++对类的管理——封装

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

1.封装

  两层含义:

  (1)把事物的属性和方法结合成个整体。

  (2)对类的属性和方法进行访问控制,对不信的进行信息屏蔽。

2.访问控制

  控制分为 类的内部,类的外部。

  public 修饰的成员,可在内部和外部访问。

  private 修饰的成员,只能在内部访问。

C++基础 C++对类的管理——封装

  封装就像一个手表,里面有很复杂的功能,但输出只有表盘,输入只能转转轴。

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

 

上一篇:

下一篇: