- 类的封装
类封装了成员变量和成员函数,这点要比struct丰富很多。封装是面向对象编程中的特点,封装把数据(属性,成员变量)和函数变成一个整体,同时封装可以对属性和方法进行访问控制(用户只能访问公共接口):
public: //修饰的成员变量和成员函数可以类的内部和类的外部访问
private:// 修饰的成员变量,智能在类的内部访问
protected: // 修饰的成员变量和函数,只能在类的内部访问,不能再类的外部访问,但是可以用在继承里面
在类中,没有权限修饰的成员变量和函数,默认是私有的。
- class 与 struct 的区别
C++中对struct进行了加强,在struct中,没有权限修饰的成员变量默 认是公共的。 - 面向对象与面向过程的区别举例
例子,定义一个长方体类,其成员函数中实现比较两个长方体是否相等。
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); // 面向对象
}