• 【C++】面向对象编程示例 ( 案例需求 | Visual Studio 创建类 | 类的声明 | 类的实现 | 类的调用 )






    一、案例需求



    使用 C++ 面向对象 , 抽象出一个 立方体 类 ;

    立方体 有 长 / 宽 / 高 / 面积 / 体积 私有 成员变量 , 以及 访问 这些成员变量的 公共 成员方法 ;

    还提供 立方体 的 对比函数 , 对比 2 个 立方体对象是否相等 ;





    二、Visual Studio 创建类



    在 Visual Studio 中 , 右键点击 " 解决方案资源管理器 " 中的 解决方案 名称 , 在弹出的菜单中选择 " 添加 / 类©… " 选项 ;

    在这里插入图片描述

    此时会弹出 " 添加类 " 对话框 ,

    在这里插入图片描述

    在 弹出的 " 添加类 " 对话框中 的 类名 输入框中 , 输入 类名 Cube , 会自动生成 .h 头文件名称 Cube.h 和 .cpp 源码文件名称 Cube.cpp ;

    点击右下角的 确定 按钮 , 即可完成类的创建 ;

    在这里插入图片描述

    生成的 Cube.h 代码如下 :

    #pragma once
    class Cube
    {
    };
    
    • 1
    • 2
    • 3
    • 4

    生成的 Cube.cpp 代码如下 :

    #include "Cube.h"
    
    • 1




    三、类的声明



    在 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;		// 立方体 面积
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43




    四、类的实现



    在 Cube.h 头文件中 , 声明了 Cube 类 , 以及类中的 成员函数 和 成员变量 ;

    在 Cube.cpp 中最主要的工作就是实现 Cube 类的成员方法 ;

    实现成员方法时 , 需要在方法名前加上 Cube:: 域作用符 , 其作用相当于 将该方法 定义在 Cube 作用域中 , 可以访问到 Cube 类中的 私有 成员变量 和 成员方法 ;

    实现下面的类的函数声明 :

    	// 设置立方体的长度
    	void setLength(int length);
    
    • 1
    • 2

    在 函数名前面加上 Cube:: 域作用符 ;

    // 设置立方体的长度
    void Cube::setLength(int length)
    {
    	m_length = length;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    类的实现 代码 :

    #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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75




    五、类的调用



    在 main 函数代码中 , 导入自定义的类的 头文件 Cube.h ,

    // 导入自定义类
    #include "Cube.h"
    
    • 1
    • 2

    之后 , 可以使用 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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    执行结果 :

    c1 面积 : 22 , c1 体积 : 6
    c2 面积 : 52 , c2 体积 : 24
    0
    请按任意键继续. . .
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

  • 相关阅读:
    Linux--安装部署Docker
    markdown希腊字母
    四、看看 CSS 创建
    PyQT6关联信号槽 (六) 百篇文章学PyQT6
    深度学习500问——Chapter03:深度学习基础(2)
    leetcode:802. 找到最终的安全状态【反图 + 入度统计 + deque + 找出图中非环的节点】
    嵌入式能从事什么职业?
    部署软件的 7 种最佳 CI/CD 管道模式
    【已解决简单好用】notepad++怎么设置中文
    Docker 官方镜像Tomcat 无法访问 解决方案
  • 原文地址:https://blog.csdn.net/han1202012/article/details/132793787