C++之多文件编程

C++多文件编程(超级详细) 在实际多文件开发中,我们往往使用如下的宏定义来避免发生重复引入://头文件内容#endif其中,_NAME_H是宏的名称。需要注意的是,这里设置的宏名必须是独一无二的,不要和项目中其他宏的名称相同。当程序中第一次 #include 该文件时,由于 _NAME_H 尚未定义,所以会定义 _NAME_H 并执行“头文件内容”部分的代码;当发生多次 #include 时,因为前面已经定义了 _NAME_H,所以不会再重复执行“头文件内容”部分的代码。 阅读详情

SubOOp.h

这个文件中声明类以及其成员函数和成员变量

/*#pragma once*/
#ifndef _SUBOOP_H_
#define _SUBOOP_H_
struct ThisFileClass{
private:
	int Stu_Age;
	/*
	void SetAge(int age)
	{
	Stu_Age=age;
	}
	这种方式编译器在编译时直接将该函数内联到调用处
	*/
public:
	void SetAge(int age);
	int GetAge(void);
};

#endif

#pragma once

这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 ,#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。 #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。 

#ifndef _SUBOOP_H_
#define _SUBOOP_H_
#ifndef这种是最早期使用的方法,是基于语言的宏定义名字不能冲突的前提下的。这种方法不仅能保证同一个头文件不会被包含两次,也可以保证内容完全相同的两个文件也只能被包含一次。

SubOOp.cpp

该文件中实现SubOOp.h中类的成成员函数;

#include "SubOOp.h"
#include <iostream>
void ThisFileClass::SetAge(int age)
{
	Stu_Age = age;/*应为加了::(域作用符),所以相当于这里的函数依然写在类的内部*/
}
int ThisFileClass::GetAge(void)
{
	int age = Stu_Age;
	std::cout << "student's name :" << Stu_Age << std::endl;
	return age;
}
main.cpp中对象的实例化,然后调用对象

#include <iostream>
#include "SubOOp.h"
using namespace std;
int main()
{
	ThisFileClass Obj;
	Obj.SetAge(100);
	Obj.GetAge();

	system("pause");
	return 0;
}




Dev-C++多文件编程避坑指南:为什么你的#include “student.cpp“报错了? 本文详细解析了在Dev-C++中进行多文件编程时常见的#include "student.cpp"报错问题,揭示了头文件与源文件的本质区别及正确使用方法。通过实战案例和配置指南,帮助开发者避免典型错误,掌握项目结构组织、头文件守卫、链接错误解决等核心技巧,提升C++多文件编程效率。 阅读详情

相关推荐

C++多文件编程和cmake构建编译

C++多文件编程是项目工程化的模式,把多个功能拆分到独立的文件再在主入口文件中引用。在编写简短的程序时,通常一个源文件就够用了,所有的方法、函数、类都在一个文件中实现,优点是编译方便只需要g++编译器而不用额外的构建工具,但是当项目工程越来越大时,拆分源文件到独立文件进行开发,这样让程序源码结构更加清晰维护更加方便更利于团队协作。

qq_30386941的博客 2018

C++多文件编程规范

C++多文件编程 C++在引入类后,多文件编程就显得很重要了,如果把所有类的声明和实现都放在一个文件里,那么对代码的维护就会变得十分困难,多文件的优点自然也就明显了,将每一个类的声明和实现单独放在一个文件里对维护代码就很容易了。 怎么开始呢(以DEV C++为例) 首先开始新项目时选择项目而不是源文件(好像Codeblock要求所有的都是以项目开始) 然后在弹出的对话框里选择Console Application,项目名称可以自己命名。 (项目管理没有的可以去视图调出来]) 之后就是多文件编程的第一步就

qq_45797783的博客 1223

USB 3.0 高清音视频采集芯片——MS2130

MS2130 是一款 USB 3.0 高清视频和音频采集芯片,内部集成 USB3.0 Device 控制器、数据收发模块、音视频处理模块。

YOU_SeMi的博客 7866

c++多文件编译

c++是独立编译,针对每一个.cpp文件,进行编译,寻找语法错误,生成汇编代码。把源文件中的预处理指令全部替换完成,比如include 的头文件,会把头文件的内容都放到源文件中。------------------g++/gcc 选项 参数--------------------------------------------------------对程序进行优化编译链接,n取值范围0-3,表示优化的级别,O0表示没有优化,O1缺省值,O3优化级别最高。预处理后停下来,生成后缀为 .i 的预编译文件。

weixin_42783170的博客 4053

多GPU时代的虚拟内存革命:CUDA VMM API的跨设备协同设计哲学

本文深入探讨了NVIDIA CUDA VMM API在多GPU系统中的虚拟内存管理革命,解决了传统Peer Access的显存碎片化和同步开销问题。通过地址-内存解耦、按需映射和精细权限控制,VMM API为分布式训练提供了高效的内存协同方案,显著提升大模型训练性能。

weixin_29251337的博客 535

开源光标主题实战:从Moshi Monsters到自定义指针的完整指南

光标主题是操作系统个性化的重要组成部分,它通过替换系统默认指针图标来改变视觉交互体验。其原理在于操作系统允许用户自定义指针资源文件,这些文件定义了不同状态下的光标图像。从技术价值看,一套设计良好的光标主题不仅能提升桌面美观度,还能增强用户的情感连接和操作愉悦感,是低成本高回报的数字幸福感提升方案。在应用场景上,无论是开发者、设计师还是普通用户,都可以通过更换光标主题来个性化工作环境。本文以热门的Moshi Monsters开源光标项目为例,深入解析了光标主题的设计逻辑、系统适配方案以及二次创作方法,涵盖了W

weixin_30879833的博客 576

C++多文件编译

多文件编译

good_jiojio的博客 1242

手把手教你学Simulink——基于Simulink的电压型 vs 电流型整流器性能对比

摘要:本文基于Simulink平台对比分析了电压型整流器(VSR)和电流型整流器(CSR)的性能差异。VSR采用电容滤波,具有高功率因数(PF>0.99)、低输入电流THD(<3%)等优势,但动态响应较慢;CSR采用电感滤波,动态响应快(<0.05s),但THD较高(5%~8%)。研究建立了统一测试平台,详细对比了两者在稳态性能、动态响应、效率等方面的差异,并给出了控制算法实现和参数优化建议。通过量化分析,为电力电子工程师提供了拓扑选型依据,可根据恒压/恒流需求选择最优方案,有效缩短开发周

MHD0815的博客 173

C++编译运行多个文件形式的程序

C++编译运行多个文件形式的程序 一.   头文件和源文件的区别: 1.   从技术层面上来说,*.h文件 *.c文件 *.cpp文件没什么区别,里面放的都是C++的源代码。 2.   但从开发习惯来说,大家都遵循一个标准,那就是.h文件放声明,.cpp文件放定义(实现)。通常类声明.h文件与.cpp文件同名:如Chain.h和Chain.cpp。 3.   一般来说,头文件提供接口,

何哥的博客 1万+

2025.06.16【转录组】|Ribo-seq数据流程详解(二 基因组比对)

本文详细介绍了Ribo-seq数据分析中的比对流程,包括环境准备、STAR索引构建、比对参数设置及结果统计可视化。通过samtools和R脚本实现比对质量评估,提供常见问题解决方案和关键指标解读。该流程强调比对参数优化和质量控制,为后续翻译组学分析奠定基础。

1980

高通SA8295P音频接口深度解析:全面掌握SA8295P的LS-I2S、PCM/TDM与高性能音频处理技术设计

SA8295P提供丰富的音频接口选项,包括LS-I2S、PCM/TDM和HS-I2S接口,具备灵活的配置选项,适合各种高保真音频和高速数据传输应用。结合LS-I2S和PCM/TDM接口:在复杂的音频编解码器设计中,可结合使用LS-I2S和PCM/TDM接口,以处理和传输不同的音频数据流。使用HS-I2S接口:在软件定义无线电(SDR)系统中,高速I2S接口可处理高速数据流,如无线电信号的解码和处理。LS-I2S(低速I2S)接口是SA8295P的一部分,提供了丰富的音频数据传输选项。

weixin_43199439的博客 1410

Dev-C++的多文件编程介绍

多文件编程的意义:稍微大一点的项目不会是单个文件的,多文件便于分工协作、代码复用和修改、结构清晰便于后期的维护。

cnds123的专栏 1万+

基于XDMA 的PCIE读写DDR

基于XDMA 的PCIE读写DDR 概述:   想实现基于FPGA的PCIe通信,查阅互联网各种转载…基本都是对PCIe的描述,所以想写一下基于XDMA的PCIe通信的实现(PCIe结构仅做简单的描述(笔记),了解详细结构移至互联网)。 实现功能:PC通过PCIE读写DDR,同时用户通过逻辑代码可以读取被写入DDR内的数据(我是通过VIO实现DDR任意地址,任意数据大小的读取。)。 实践实践!!! 说明: 参考文档: PCI Express Base Specification Revision 3.0 P

Crazzy_M的博客 1万+

C++多文件编程

为了方便项目的开发与后期维护,最好将同一业务代码的放在同一源文件中,这就必然使得项目由分散在不同路径下的多个源文件组成。C++代码文件根据后缀名不同,大致可以分为以下几类:

frame_c的博客 4738

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1664

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【C++知识点】多文件编程

📣专栏定位:整理一下 C++ 相关的知识点,供大家学习参考~🎏唠叨唠叨:在这个专栏里我会整理一些琐碎的 C++ 知识点,方便大家作为字典查询~

Newin2020的博客 1667

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C/C++ 多文件编程 ——学习笔记

当所有代码全部编写在同一个文件中时,代码冗杂, 难以分清结构,而多文件编程可以解决这个问题。 主要结构方式及原理classx.hclassx.cppmain.cppvc 6.0运行多文件建立打开 主要结构 Sources main.cpp:主函数,调用功能。 class1.cpp:类函数、函数的实现。 class2.cpp … Headers “class1.h”: 类、函数的声明。 ...

weixin_45705515的博客 1162

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C++ | C++ 多文件编程1

C++ | C++ 多文件编程1 事实上,一个完整的 C++ 项目常常是由多个代码文件组成的,根据后缀名的不同,大致可以将它们分为如下 2 类: .h (.hpp)文件:又称“头文件”,用于存放常量、函数的声明部分、类的声明部分; .cpp 文件:又称“源文件”,用于存放变量、函数的定义部分,类的实现部分。 实际上,.cpp 文件和 .h 文件都是源文件,除了后缀不一样便于区分和管理外,其他的几乎相同,在 .cpp 中编写的代码同样也可以写在 .h 中。之所以将 .cpp 文件和 .h 文件在项目中承担

I_feige的博客 761

C++重温笔记(十二): C++多文件编程

1. 写在前面 c++在线编译工具,可快速进行实验: https://www.bejson.com/runcode/cpp920/ 这段时间打算重新把c++捡起来, 实习给我的一个体会就是算法工程师是去解决实际问题的,所以呢,不能被算法或者工程局限住,应时刻提高解决问题的能力,在这个过程中,我发现cpp很重要, 正好这段时间也在接触些c++开发相关的任务,所有想借这个机会把c++重新学习一遍。 在推荐领域, 目前我接触到的算法模型方面主要是基于Python, 而线上的服务全是c++(算法侧, 业务那边基本上

Miracle8070 1万+

C++多文件编程是什么

C++多文件编程是什么 原文写的实在是太好了,心生敬意,拿过来收藏一下,这里是源文章地址:C++多文件编程是什么 在以往的程序编写中,我们都是将所有的代码写到一个源文件里面,例如: main.cpp //main.cpp #include <iostream> using namespace std; class Student{ public: char *name; int age; float score; void say(){ cout&

Lanyan9的博客 668

C++ 学习与 CLion 使用:(十五)多文件编程,和C语言一样的多文件编程

多文件编程

qq_51409113的博客 415

【C++】模版的分离编译与多文件编程

深度剖析 模版的分离编译及其原理~ 实践模版的多文件编程~

Dooo_yh的博客 1247

关于C++在vscode中的多文件编程问题

关于C++在vscode中的多文件编程问题

m0_66230497的博客 913

C++ const常量在多文件编程中的3种用法

首先介绍一种最常用也最简单的方法,就是将const常量定义在.h文件中。显然此方式违背了“声明位于 .h 文件,定义(实现)位于 .cpp 文件”的规律。在 C++ 多文件编程中,还有 2 种特殊情况是违背此规律的,分别是类的定义和内联函数的定义,通常情况下它们也都定义在 .h 文件中。举个例子(实例一):123456789101112//demo.hconstintnum = 10;

yaodaoji的博客 665
上一篇: linux的tcp/udp网络编程模型
下一篇: 面向对象的编程练习
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值