C++随笔4——类的封装及控制访问

  1. 类的封装
    类封装了成员变量和成员函数,这点要比struct丰富很多。封装是面向对象编程中的特点,封装把数据(属性,成员变量)和函数变成一个整体,同时封装可以对属性和方法进行访问控制(用户只能访问公共接口):
public: //修饰的成员变量和成员函数可以类的内部和类的外部访问 
private:// 修饰的成员变量,智能在类的内部访问   
protected: // 修饰的成员变量和函数,只能在类的内部访问,不能再类的外部访问,但是可以用在继承里面

在类中,没有权限修饰的成员变量和函数,默认是私有的。

  1. class 与 struct 的区别
    C++中对struct进行了加强,在struct中,没有权限修饰的成员变量默 认是公共的。
  2. 面向对象与面向过程的区别举例
    例子,定义一个长方体类,其成员函数中实现比较两个长方体是否相等。
Class Cube
{
 public: 
    float cube_length;
    float cube_width;
    float  cube_heigth;

void SetCube(float a, float b , float c)
{
    float cube_length = a;
    float cube_width = b;
    float  cube_heigth= c;
}
    // 面向过程的思维
    bool IsSame(Cube& c1, Cube& c2)
    {
        if (c1.cube_length == c2.cube.lenth and  c1.cube_width == c2.cube.lwidth and c1.cube_heigth == c2.cube.heigth)
        {
            return true;
        }
        else 
        {
           return false;
        }
    }
// 面向对象的思维
bool IsSame(Cube& c2)
    {
        if (cube_length == c2.cube.lenth and  cube_width == c2.cube.lwidth and cube_heigth == c2.cube.heigth)
        {
            return true;
        }
        else 
        {
           return false;
        }
    }
}

viod main() 
{
   Cube c1, c2;
   c1.SetCube(1.0, 2.0, 3.0);
   c2.SetCube(1.0, 2.0, 4.0);
   bool is_same = c1.IsSame(c1, c2); // 面向过程
   bool is_smae_2 = c1.IsSame(c2); // 面向对象
}

你可能感兴趣的:(C/C++基础,c++,开发语言)