使用 C++ 面向对象 , 抽象出一个 立方体 类 ;
立方体 有 长 / 宽 / 高 / 面积 / 体积 私有 成员变量 , 以及 访问 这些成员变量的 公共 成员方法 ;
还提供 立方体 的 对比函数 , 对比 2 个 立方体对象是否相等 ;
在 Visual Studio 中 , 右键点击 " 解决方案资源管理器 " 中的 解决方案 名称 , 在弹出的菜单中选择 " 添加 / 类©… " 选项 ;
此时会弹出 " 添加类 " 对话框 ,
在 弹出的 " 添加类 " 对话框中 的 类名 输入框中 , 输入 类名 Cube , 会自动生成 .h 头文件名称 Cube.h 和 .cpp 源码文件名称 Cube.cpp ;
点击右下角的 确定 按钮 , 即可完成类的创建 ;
生成的 Cube.h 代码如下 :
#pragma once
class Cube
{
};
生成的 Cube.cpp 代码如下 :
#include "Cube.h"
在 Cube.h 头文件中 , 编写 类的声明 代码 ;
头文件前面加上 #pragma once
, 确保该头文件只被 include 包含 1 次 ;
在 Cube 类中 , 只需要声明 成员变量 和 成员方法 , 其中成员方法不需要实现 , 只进行声明 , 即可完成 类的声明 ;
类的声明 的作用是 , 任何类 包含该 Cube.h 头文件后 , 就可以使用该 Cube 类 ;
类的声明 :
#pragma once
class Cube
{
public:
// 设置立方体的长度
void setLength(int length);
// 设置立方体的宽度
void setWidth(int width);
// 设置立方体的高度
void setHeight(int height);
// 同时 设置立方体的长度 宽度 高度
// 同时 设置 默认参数
void setLengthWidthHeight(int length = 0, int width = 0, int height = 0);
// 获取立方体的长度
int getLength();
// 获取立方体的宽度
int getWidth();
// 获取立方体的高度
int getHeight();
public:
// 获取立方体的体积
int getVolum();
// 获取立方体的面积
int getArea();
public:
// 立方体对比
int isEquals(Cube& cube);
private:
// 成员变量推荐前面添加 m_ 前缀
int m_length; // 立方体 长
int m_width; // 立方体 宽
int m_height; // 立方体 高
int m_volume; // 立方体 体积
int m_area; // 立方体 面积
};
在 Cube.h 头文件中 , 声明了 Cube 类 , 以及类中的 成员函数 和 成员变量 ;
在 Cube.cpp 中最主要的工作就是实现 Cube 类的成员方法 ;
实现成员方法时 , 需要在方法名前加上 Cube:: 域作用符 , 其作用相当于 将该方法 定义在 Cube 作用域中 , 可以访问到 Cube 类中的 私有 成员变量 和 成员方法 ;
实现下面的类的函数声明 :
// 设置立方体的长度
void setLength(int length);
在 函数名前面加上 Cube:: 域作用符 ;
// 设置立方体的长度
void Cube::setLength(int length)
{
m_length = length;
}
类的实现 代码 :
#include "Cube.h"
// 设置立方体的长度
void Cube::setLength(int length)
{
m_length = length;
}
// 设置立方体的宽度
void Cube::setWidth(int width)
{
m_width = width;
}
// 设置立方体的高度
void Cube::setHeight(int height)
{
m_height = height;
}
// 设置立方体的 长度 / 宽度 / 高度
void Cube::setLengthWidthHeight(int length, int width, int height)
{
m_length = length; m_width = width; m_height = height;
}
// 获取立方体的长度
int Cube::getLength()
{
return m_length;
}
// 获取立方体的宽度
int Cube::getWidth()
{
return m_width;
}
// 获取立方体的高度
int Cube::getHeight()
{
return m_height;
}
// 获取立方体的体积
int Cube::getVolum()
{
m_volume = m_length * m_width * m_height;
return m_volume;
}
// 获取立方体的面积
int Cube::getArea()
{
m_area = 2 * (m_length * m_width + m_length * m_height + m_width * m_height);
return m_area;
}
// 立方体对比
int Cube::isEquals(Cube& cube)
{
if ((m_length == cube.getLength()) &&
(m_width == cube.getWidth()) &&
(m_height == cube.getHeight()))
{
// 长宽高 全部相等
return 1;
}
else
{
return 0;
}
return 0;
}
在 main 函数代码中 , 导入自定义的类的 头文件 Cube.h ,
// 导入自定义类
#include "Cube.h"
之后 , 可以使用 Cube 类 ;
类的调用 代码示例 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include
// 导入 std 命名空间
using namespace std;
// 导入自定义类
#include "Cube.h"
int main() {
// 定义 2 个 Cube 对象
Cube c1, c2;
// 初始化 Cube 对象
c1.setLengthWidthHeight(1, 2, 3);
c2.setLengthWidthHeight(2, 3, 4);
cout << "c1 面积 : " << c1.getArea() << " , c1 体积 : " << c1.getVolum() << endl;
cout << "c2 面积 : " << c2.getArea() << " , c2 体积 : " << c2.getVolum() << endl;
cout << c1.isEquals(c2) << endl;
// 控制台暂停
system("pause");
return 0;
}
执行结果 :
c1 面积 : 22 , c1 体积 : 6
c2 面积 : 52 , c2 体积 : 24
0
请按任意键继续. . .