C++自定义头文件使用(函数和类)
简单案例需求:
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;
}
项目结构

运行效果

相关文章:
C++自定义头文件使用(函数和类)
简单案例需求: 1,计算正方形和三角形的周长——函数 2,模拟不同类型的动物叫声——类 一、创建项目 C空项目 Class_Study 二、创建主函数 在源文件下添加新建项,main.cpp 三、自定义头文件——函数 需求:1&a…...
消息队列选型
一、要解决的问题 1.1 异步 分析: 需要根据场景来判断。若整体链路的逻辑中,某些逻辑是不需要强实时的,滞后一段时间是允许的,同时又不会对用户带来不好的体验,那么可以使用MQ完成异步操作。 例如:秒杀场…...
ubuntu在conda环境中使用 pip install -r requirements.txt但是没有安装在虚拟环境中
whereis pip pip listubuntu在conda环境中使用pip install lpips0.1.3 但是安装在了这里 Requirement already satisfied: lpips0.1.3 in /home/uriky/anaconda3/lib/python3.11/site-packages (0.1.3) 就会出现黄色波浪,未在虚拟环境中安装包 解决办法1࿱…...
力扣127.单词接龙讲解
距离上一次刷题已经过去了.........嗯............我数一一下............整整十天,今天再来解一道算法题 由于这段时间准备简历,没咋写博客。。今天回来了!!!!!!!&…...
latex笔记
双列排版,右端margin不对齐怎么解决 如下图这种情况, 解决方法: 在文档开头引入ragged2e包 \usepackage{ragged2e}然后在子章节的开头添加 \justifying\subsection{camouflaged object detection based on coarse-to-fine strategy} \just…...
秋招算法——AcWing101——拦截导弹
文章目录 题目描述思路分析实现源码分析总结 题目描述 思路分析 目前是有一个笨办法,就是创建链表记录每一个最长下降子序列所对应的节点的链接,然后逐个记录所有结点的访问情况,直接所有节点都被访问过。这个方法不是很好,因为需…...
IDEA不能创建新项目和新模块
问题: IDEA不管是创建新项目还是新模块都创建不成功,会报如下图错误 解决方案: 在电脑设置里搜索 “防火墙和网络保护” ,打开如下图所示 找到你所安装的IDEA,更改设置,选中IDEA 最后,确定&am…...
WebRTC 的核心:RTCPeerConnection
WebRTC 的核心:RTCPeerConnection WebRTC 的核心:RTCPeerConnection创建 RTCPeerConnection 对象RTCPeerConnection 与本地音视频数据绑定媒体协商ICE什么是 Candidate?收集 Candidate交换 Candidate尝试连接 SDP 与 Candidate 消息的互换远端…...
LeetCode hot100-39-N
101. 对称二叉树给你一个二叉树的根节点 root , 检查它是否轴对称。做不出来哇,递归一生之敌 普通的对一棵树的递归遍历根本没办法只接比较左子树的左和右子树的右这样来比较,所以这题比较巧妙的是把这棵树当做两棵树一样去遍历比较。 官方…...
NumPy常用操作
目录 一:简介 二:NumPy 常用操作 三:总结 一:简介 是一个开源的Python库,它为Python提供了强大的多维数组对象和用于处理这些数组的函数。NumPy的核心是ndarray,它是一个高效的多维数组容器,用于存储和处理大规模的数据。NumPy还提供了许多数学函数,用于数组之间的操…...
学习笔记——字符串(单模+多模+练习题)
单模匹配 Brute Force算法(暴力) 算法思想 母串和模式串字符依次配对,如果配对成功则继续比较后面位置是否相同,如果出现匹配不成功的位置,则j(模式串当前的位置)从头开始,i&…...
DOT + graphviz 轻松画图
GraphViz:2 DOT语法和相关应用_graphviz dot-CSDN博客 图可视化之Graphviz - 知乎 Graphviz 是由AT&T Research、Lucent Bell实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络。具体地,其使用一种名为dot语言的DSL来编…...
使用Vue调用ColaAI Plus大模型,实现聊天(简陋版)
首先去百度文心注册申请自己的api 官网地址:LuckyCola 注册点开个人中心 查看这个文档自己申请一个ColaAI Plus定制增强大模型API | LuckyColahttps://luckycola.com.cn/public/docs/shares/api/colaAi.html来到vue的页面 写个样式 <template><Header …...
Unity使用sherpa-onnx实现离线语音合成
sherpa-onnx https://github.com/k2-fsa/sherpa-onnx 相关dll和lib库拷进Unity,官方示例代码稍作修改 using SherpaOnnx; using System; using System.IO; using System.Runtime.InteropServices; using UnityEngine;public class TTS : MonoBehaviour {public st…...
Elasticsearch入门基础和集群部署
Elasticsearch入门基础和集群部署 简介基础概念索引(Index)类型(Type)(逐步弃用)文档(Document)字段(Field)映射(Mapping)分片&#x…...
12、24年--信息系统治理——IT治理
主要考选择题,2分左右,案例、论文涉及概率不大,需要认证读课本原文。 1、IT治理基础 IT治理是描述组织采用有效的机制对信息技术和数据资源开发利用,平衡信息化发展和数字化转型过程中的风险,确保实现组织的战略目标的过程。 1.1 IT治理的驱动因素 1)存在很多问题: 信…...
Electron学习笔记(三)
文章目录 相关笔记笔记说明 五、界面1、获取 webContents 实例(1)通过窗口对象的 webContent 属性获取 webContent 实例:(2)获取当前激活窗口的 webContents 实例:(3)在渲染进程中获…...
【Redis】Redis键值存储
大家好,我是白晨,一个不是很能熬夜,但是也想日更的人。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪💪…...
C++系统编程篇——Linux初识(系统安装、权限管理,权限设置)
(1)linux系统的安装 双系统---不推荐虚拟机centos镜像(可以使用)云服务器/轻量级云服务器(强烈推荐) ①云服务器(用xshell连接) ssh root公网IP 然后输入password ①添加用户: addus…...
No Cortex-M SW Device Found
将DIO和CLK管脚调换一下...
2026届毕业生推荐的AI写作助手实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在人工智能开展内容创作那一块儿,标题可是吸引目标受众的头一个环节哟。对于“降…...
同步、异步与互斥:从通用OS到RTOS的全面解析
一、基础概念:进程与线程1.1 什么是进程?进程是操作系统进行资源分配和调度的基本单位,是一个正在运行的程序实例。1.2 什么是线程?线程是操作系统进行CPU调度的基本单位,是进程内部的一条执行路径(轻量级进…...
基于 HarmonyOS 6.0 的智能家政预约页面实战开发:从页面构建到跨端体验优化
基于 HarmonyOS 6.0 的智能家政预约页面实战开发:从页面构建到跨端体验优化 前言 随着 HarmonyOS 生态不断完善,HarmonyOS 6.0 已经不仅仅是一个移动端操作系统,而是逐渐演变为一个真正意义上的全场景分布式操作平台。对于开发者而言…...
Linux玩转硬件调试:用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM(含中断检测实战)
Linux玩转硬件调试:用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM(含中断检测实战) 在嵌入式开发和硬件逆向工程领域,调试工具的选择往往决定了工作效率的上限。传统方案需要购置价格高昂的专用调试器,而CH347芯…...
方法区内存回收机制与核心引用链深度剖析
在 Java 虚拟机(JVM)的内存管理体系中,方法区(JDK 1.8 及以后具体实现为元空间 Metaspace)的垃圾回收主要聚焦于两部分:废弃的常量池清理以及无用类的卸载(Class Unloading)。由于类…...
免费开源AMD Ryzen调试工具:SMUDebugTool完整使用指南与性能调优实战
免费开源AMD Ryzen调试工具:SMUDebugTool完整使用指南与性能调优实战 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地…...
【图像增强】基于Grünwald–Letnikov和Riesz分数阶算子的四种分数阶PDE图像增强算法的MATLAB实现
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
告别折腾:用 apt 和 Qt 官方安装器两种方式在 Debian 上搞定 Qt 5.15.2 开发环境
在 Debian 上搭建 Qt 5.15.2 开发环境的双轨方案 对于需要在 Debian 系统上建立 Qt 开发环境的工程师来说,选择正确的安装方式往往比安装本身更重要。本文将深入探讨两种主流方案:Debian 官方仓库的 apt 安装和 Qt 官方在线安装器,帮助您根据…...
通过 Taotoken CLI 工具一键配置开发环境中的多模型访问密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 Taotoken CLI 工具一键配置开发环境中的多模型访问密钥 在接入多个大模型服务时,开发者通常需要为不同的工具&…...
从7805到D-CAP2:TPS54229E实现12V转5V高效电源设计
1. 从线性稳压到D-CAP2:一个电源工程师的选型心路刚入行那会儿,画的第一块51单片机板子,电源部分几乎不用想,一个7805三端稳压器,加上输入输出两个电解电容,齐活。这东西皮实、便宜,满大街都是&…...
