C++自定义头文件使用(函数和类)

news2024/11/14 18:46:47

简单案例需求:
1,计算正方形和三角形的周长——函数
2,模拟不同类型的动物叫声——类

一、创建项目

C++空项目
Class_Study
在这里插入图片描述
在这里插入图片描述

二、创建主函数

在源文件下添加新建项,main.cpp
在这里插入图片描述
在这里插入图片描述

三、自定义头文件——函数

需求:1,计算正方形和三角形的周长

在头文件下添加新建项,Circumference.h
在源文件下添加新建项,Circumference.cpp
最好两个文件名称一致,头文件.h负责函数声明,.cpp用于函数实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结构如下所示:
在这里插入图片描述

Circumference.h用于声明两个函数,分别用于计算正方形和三角形的周长
Circumference.cpp用于对两个函数的实现

Circumference.h 头文件函数声明

#pragma once
int square(int a);
int triangle(int a);

Circumference.cpp 相应函数实现

#include"Circumference.h"
int square(int a) 
{
	return a * 4;
}

int triangle(int a) 
{
	return a * 3;
}

main.cpp 主函数

#include"Circumference.h"
#include<iostream>
int main(int argc,char* argv[])
{
	int queare_, triangle_;
	queare_ = square(5);
	triangle_ = triangle(5);

	std::cerr <<"queare is: " << queare_ << std::endl;
	std::cerr <<"triangle is: " << triangle_ << std::endl;

	return 0;
}

运行
在这里插入图片描述

结果
在这里插入图片描述

四、自定义头文件——类

需求:2,模拟不同类型的动物叫声——类

新建项为C++类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统会生成对应的.h.cpp文件
在这里插入图片描述
Animal.h用于声明一个Animal类,里面有两个方法,cat和dog
Animal.cpp用于对Animal类里面的方法进行实现

Animal.h

#pragma once
class Animal
{
public:
	void cat();
	void dog();
};

Animal.cpp

#include "Animal.h"
#include<iostream>

void Animal::cat() 
{
	std::cerr << "miaomiaomiao~~~" << std::endl;
}

void Animal::dog()
{
	std::cerr << "wangwangwang~~~" << std::endl;
}

main.cpp

#include"Animal.h"
#include<iostream>
int main(int argc,char* argv[])
{
	Animal* a = new Animal();
	a->dog();
	a->cat();
	return 0;
}

运行
在这里插入图片描述

结果
在这里插入图片描述

五、完整项目,实现两个需求

Circumference.h

#pragma once
int square(int a);
int triangle(int a);

Animal.h

#pragma once
class Animal
{
public:
	void cat();
	void dog();
};

Circumference.cpp

#include"Circumference.h"
int square(int a) 
{
	return a * 4;
}

int triangle(int a) 
{
	return a * 3;
}

Animal.cpp

#include "Animal.h"
#include<iostream>

void Animal::cat() 
{
	std::cerr << "miaomiaomiao~~~" << std::endl;
}

void Animal::dog()
{
	std::cerr << "wangwangwang~~~" << std::endl;
}

main.cpp

#include"Circumference.h"
#include"Animal.h"
#include<iostream>
int main(int argc,char* argv[])
{
	int queare_, triangle_;
	queare_ = square(5);
	triangle_ = triangle(5);
	std::cerr <<"queare is: " << queare_ << std::endl;
	std::cerr <<"triangle is: " << triangle_ << std::endl;

	Animal* a = new Animal();
	a->dog();
	a->cat();
	return 0;
}

项目结构
在这里插入图片描述

运行效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1679713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K210开发板MicroPython开发环境搭建

一、安装CanMV IDE开发软件 1、进入如下连接 https://developer.canaan-creative.com/resource 2、点击下载 3、下一步 4、修改安装路径&#xff0c;下一步 5、接受许可下一步 6、下一步 7、安装 8、完成 9、区域①菜单栏&#xff1a;操作文件&#xff0c;使用工具等。…

【Python大数据】PySpark

CSDN不支持多个资源绑定&#xff0c;另外两个数据文件下载&#xff1a; 订单数据-json.zip search-log.zip Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎 简单来说&#xff0c;Spark是一款分布式的计算框架&#xff0c;用于调度成百上千的服…

Unity射击游戏开发教程:(13)如何在Unity中播放音效

在本文中,我将向大家展示一些为游戏添加声音的不同方法。 我们为游戏添加声音的第一种方法是播放背景音乐。在此,我们将创建游戏对象(“音频管理器”)并创建一个子游戏对象(“背景音乐”)。该子游戏对象将是播放音乐的对象,因此需要向其添加音频源组件。如果没有音频源组…

山东大学计算机考研数据分析,初复试占比6:4,复试内容不少得花精力准备!

山东大学&#xff08;ShandongUniversity&#xff09;&#xff0c;简称山大&#xff0c;位于中国山东&#xff0c;是中华人民共和国教育部直属的综合性全国重点大学&#xff0c;是国家“211工程”、“985工程”重点建设院校&#xff0c;入选“111计划”、“珠峰计划”、“卓越工…

【软考】模拟考卷错题本2024-05-14

1 活动图-计算时间差 审题&#xff0c;第几天~选的3、10是结束了上一次的活动并未开始呢 &#xff01;所以记得按照正常的语序表达哦&#xff01; 2 队列-算长度 代入法&#xff0c;设计一个开始为0&#xff0c;结尾为9 &#xff0c;容量为10即M的队列&#xff1b;带入计算当前…

国际化日期(inti)

我们可以使用国际化API自动的格式化数字或者日期&#xff0c;并且格式化日期或数字的时候是按照各个国家的习惯来进行格式化的&#xff0c;非常的简单&#xff1b; const now new Date(); labelDate.textContent new Intl.DateTimeFormat(zh-CN).format(now);比如说这是按照…

web学习笔记(五十五)

目录 1. 配置代码片段的步骤 2. 条件判断 2.1 v-if、v-else、v-else-if 2.2 v-show 2.3 v-show和v-if的区别 1. 配置代码片段的步骤 在Visual Studio Code中我们可以将常用的代码配置成代码片段&#xff0c;这样就可以在页面上快速输入大段代码了。 &#xff08;1&#…

Linux进程控制——Linux进程程序替换

前言&#xff1a;Linux进程控制包含了进程终止&#xff0c;进程等待&#xff0c;进程程序替换。走到现在我们也只剩下进程程序替换没介绍了&#xff0c;那么让我们来看看进程程序替换到底是什么&#xff01; 本篇主要内容&#xff1a; 替换原理 替换函数 实现简易shell 我们所创…

Linux FT260驱动内核学习笔记

目录 1. 安装ft260驱动 2. 编译ft260源码 3. 通过sysfs配置ft260设备 3.1 多功能GPIO配置 3.2 控制GPIO 3.3 配置i2c总线频率 4. UART 5. 使用i2c-tools交互I2C设备 5.1 安装i2c-tools 5.2 探测I2C设备 5.3 读取所有寄存器数据 5.4 读取和写入 5.5 16位地址的读写…

私活更好用:SpringBoot开源项目!!【送源码】

今天分享一款非常香的SpringBoot大屏开源项目&#xff0c;非常适合接私活用。 这是一款基于SpringBoot代码生成器的快速开发平台&#xff01;采用前后端分离架构&#xff1a;SpringBoot&#xff0c;Mybatis&#xff0c;Shiro&#xff0c;JWT&#xff0c;Vue&Ant Design。强…

C++ 日志库 log4cpp 编译、压测及其范例代码 [全流程手工实践]

文章目录 一、 log4cpp官网二、下载三、编译1.目录结构如下2.configure 编译3.cmake 编译 四、测试五、压测源码及结果1.运行环境信息2.压测源码3.压测结果 文章内容&#xff1a;包含了对其linux上的完整使用流程&#xff0c;下载、编译、安装、测试用例尝试、以及一份自己写好…

使用VMware或VirtualBox安装eNSP Pro并使用CRT连接设备

文章目录 使用Oracle Virtual Box安装eNSP Pro创建虚拟机配置网卡配置带外管理网络 使用VMware Workstation安装eNSP Pro转换文件格式及虚拟磁盘模式配置网卡创建虚拟机配置使用CRT连接管理设备 前一段时间是开放了eNSP Pro的账号权限&#xff0c;但是在写博客时&#xff0c;权…

[董晓算法]搜索相关题目及模板

前言&#xff1a; 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列&#xff08;还没学完&#xff09; 【董晓算法】动态规划之线性DP问题-CSDN博客 【董晓算法】动态规划之背包DP问题&#xff…

html--互动星空

<!doctype html> <html> <head> <meta charset"utf-8"> <title>互动星空</title><style> html,body {margin:0;overflow:hidden;width:100%;height:100%;cursor:none;background:black;background:linear-gradient(to bot…

第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 拼数字

//bfs只能过40%。 #include<bits/stdc.h> using namespace std; #define int long long int a,b,c,dp[2028]; struct s {int x,y,z;string m; }; map<vector<int>,int>k; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a…

大模型时代下的先行者:景联文科技引领数据标注新时代

在大模型时代&#xff0c;数据标注不再是简单的分类标注&#xff0c;而是一项融合了技术革新、专业技能、法律合规和精细化管理的综合性任务&#xff0c;对推动AI技术的发展和落地应用具有重要意义。 景联文科技作为AI基础行业的数据供应商&#xff0c;可协助人工智能企业解决整…

使用 cloudflare 免费服务,搭建临时邮箱,无需暴露自己的真实邮箱地址,保护个人隐私

使用 cloudflare 免费服务&#xff0c;搭建临时邮箱 地址 在线演示 &#x1f310;Github地址 https://github.com/find-xposed-magisk/cloudflare_temp_email 功能/TODO Cloudflare D1 作为数据库 使用 Cloudflare Pages 部署前端 使用 Cloudflare Workers 部署后端 email 转…

【合成孔径雷达】合成孔径雷达的多视角理解和时/频成像算法的统一解释

文章目录 一、什么是雷达成像&#xff08;1&#xff09;主要的遥感探测手段&#xff1a;光学、红外和雷达&#xff08;2&#xff09;从数学的角度&#xff1a;雷达成像主要研究什么&#xff1f;数据采集&#xff1a; y T x n yTxn yTxn信息提取&#xff1a; y − > x ? y…

【Image captioning】基于检测模型网格特征提取——以Sydeny为例

【Image captioning】基于检测模型网格特征提取——以Sydeny为例 今天,我们将重点探讨如何利用Faster R-CNN检测模型来提取Sydeny数据集的网格特征。具体而言,这一过程涉及通过Faster R-CNN模型对图像进行分析,进而抽取出关键区域的特征信息,这些特征在网格结构中被系统地…

鸿蒙HarmonyOS开发:List组件结合Badge、swipeAction实现微信消息列表侧滑删除效果

文章目录 一、ListItem的swipeAction属性二、Badge组件三、Search组件四、示例代码五、效果 一、ListItem的swipeAction属性 名称参数类型描述swipeAction{start?: CustomBuilder,end?:CustomBuilder,edgeEffect?: SwipeEdgeEffect,}用于设置ListItem的划出组件。- start: …