首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C++】类的声明 与 类的实现 分开 ① ( 类的声明 与 类的实现 常用用法 | Visual Studio 2019 中创建类的头文件和源文件 | 确保头文件包含一次 )

【C++】类的声明 与 类的实现 分开 ① ( 类的声明 与 类的实现 常用用法 | Visual Studio 2019 中创建类的头文件和源文件 | 确保头文件包含一次 )

作者头像
韩曙亮
发布2023-10-15 16:53:49
发布2023-10-15 16:53:49
1.4K0
举报

一、类的声明 与 类的实现 分开

1、类的声明 与 类的实现 常用用法

在之前的博客中 , 定义的 class 类 , 定义类时 同时 也完成了实现 ;

但是在 C++ 语言实际开发中 , 大部分的情况下 , 类的声明 与 类的实现 是分开的 , 这样可以使程序代码更清晰 , 易于管理 和 维护 ;

  • 在 .h 后缀 的头文件 中写 类的声明 代码 ;
  • 在 .cpp 后缀 的源码文件 中写 类的实现 代码 ;

上述 .h 后缀 的头文件 和 .cpp 后缀 的源码文件 , 可以手动创建添加 , 也可以使用 IDE 自带的创建类功能添加 ,

这里推荐后者 , 下面的章节讲解在 Visual Studio 2019 中创建类 的方法 ;

2、Visual Studio 2019 中创建类的头文件和源文件

右键点击 " 解决方案资源管理器 " 中的解决方案名称 , 在弹出的菜单中选择

" 添加 / 类 " 选项 ,

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

生成的 Student.h 头文件内容如下 : 在该头文件中 , 声明 Student 类 ;

代码语言:javascript
复制
#pragma once
class Student
{
};

生成的 Student.cpp 源码文件如下 : 在该源码文件中 实现类 ;

代码语言:javascript
复制
#include "Student.h"

3、Student.h 类头文件解析

#pragma once 代码的作用是 确保 该头文件 在 整个程序中 , 只能被 include 包含一次 ;

代码语言:javascript
复制
// 确保 该头文件 只包含一次
#pragma once

上述 #pragma once 代码与 下面的代码 实现的功能是相同的 , 在 C 语言中 , 只能使用宏定义的方式防止 include 二次包含 ;

代码语言:javascript
复制
#ifndef __Student_H_
#define __Student_H_

// 源码主要内容

#endif // !__Student_H_

在 C++ 中可以都使用 ;

生成的默认类只有一个类名 , 没有其它内容 ;

代码语言:javascript
复制
class Student
{
};

4、确保头文件包含一次

确保头文件包含一次的方法 :

  • C++ 语言 : 在 C++ 语言中 , 既可以使用 #pragma once , 又可以使用 #ifndef _Student_H 的方式 , 确保头文件只被包含一次 ;
代码语言:javascript
复制
#pragma once
class Student
{
};
  • C 语言 : C 语言中 , 使用 #ifndef _Student_H 的方式 , 确保头文件只被包含一次 ;
代码语言:javascript
复制
#ifndef __Student_H_
#define __Student_H_

class Student
{
};

#endif // !__Student_H_
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、类的声明 与 类的实现 分开
    • 1、类的声明 与 类的实现 常用用法
    • 2、Visual Studio 2019 中创建类的头文件和源文件
    • 3、Student.h 类头文件解析
    • 4、确保头文件包含一次
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档