当前位置: 首页 > news >正文

C++开发进阶1:C++编程命名规范

进行C++开发时最基础且最重要的是命名规范,掌握良好的命名规范能增加代码的可读性。

认识文件:

.cpp:C++ 源文件.

.h或.hpp:C++ 头文件

.tpp模板实现文件(如果模板定义和实现分开)

.inl内联文件,包含内联函数的定义

.md:Markdown 文件

编程命名规范:

常见命名规范:

蛇形命名法则:顾名思义,蛇形命名法就是用下划线连接各个描述性单词,例如person_class.cpp通常使用在文件或一些变量名中。

小驼峰命名法则:第一个单词全部小写,单词与单词连接无下划线,第二个单词首字母大写,例如:通常使用在变量中,例如accountName

大驼峰命名法则:单词与单词连接无下划线,每个单词首字母均大写,通常使用在类名中,例如:MyAnimal,PersonMoney,

全大写命名法则:顾名思义,每个单词的所有字母均为大写且用下划线连接。例如:MAX_SIZE,PI_ROUND

其他特殊命名规范:全局变量按照前面加g的方式进行命名,例如g_countName,g_player_money等,私有成员变量前面加上小写m,例如m_personMoney,保护成员变量在前面加上下划线,例如_myVariable,属性或变量一般采用小驼峰命名法居多,蛇形命名法在python中较为常见。

命名法则:例子:适用范围
蛇形命名法则person_class文件,变量,函数
小驼峰命名法则accountName变量,函数
大驼峰命名法则PersonMoney类名,枚举类名,结构体
全大写命名法则MAX_SIZE常量,枚举值,宏名
特殊命名法则1g_countName全局变量
特殊命名法则2m_personMoney私有成员变量/函数
特殊命名法则3_myVariable保护成员变量/函数

代码样例:

#include<iostream>
using namespace std;
#define MAX_AGE 150
enum EnumGender{WOMAN = 0,MAN = 1
};
class Person{public:int age;int gender;Person(int age, EnumGender gender, int money);void saveMoney(int add_money);void withdrawMoney(int subtract_money);int getMoney();private:int m_money;
};
Person::Person(int age, EnumGender gender, int money){if (age > MAX_AGE){cout << "年龄错误,创建类失败" << endl; }else{this->age = age;this->gender = gender;this->m_money = money;} 
}
void Person::saveMoney(int add_money){m_money += add_money;
}
void Person::withdrawMoney(int subtract_money){m_money -= subtract_money;
}
int Person::getMoney(){return m_money;
}
int main() {Person xiaoming = Person(18,MAN,1000);xiaoming.saveMoney(1000);cout <<xiaoming.age << endl<< (xiaoming.gender == MAN ? "男":"女") << endl <<  xiaoming.getMoney();
} 

相关文章:

C++开发进阶1:C++编程命名规范

进行C开发时最基础且最重要的是命名规范&#xff0c;掌握良好的命名规范能增加代码的可读性。 认识文件&#xff1a; .cpp&#xff1a;C 源文件. .h或.hpp&#xff1a;C 头文件 .tpp模板实现文件&#xff08;如果模板定义和实现分开&#xff09; .inl内联文件&#xff0c;…...

Android 图片相识度比较(pHash)

概述 在 Android 中&#xff0c;要比对两张 Bitmap 图片的相似度&#xff0c;常见的方法有基于像素差异、直方图比较、或者使用一些更高级的算法如 SSIM&#xff08;结构相似性&#xff09;和感知哈希&#xff08;pHash&#xff09;。 1. 基于像素的差异比较 可以逐像素比较…...

Gitlab 完全卸载–亲测可行

1、停止gitlab gitlab-ctl stop2.卸载gitlab&#xff08;注意这里写的是gitlab-ce&#xff09; rpm -e gitlab-ce 3、查看gitlab进程 ps aux | grep gitlab 4、杀掉第一个进程&#xff08;就是带有好多.............的进程&#xff09; 5、删除所有包含gitlab文件 find / …...

gitlab操作和管理

详细的说明下这几条指令&#xff1a; Git global setup git config --global user.name “” git config --global user.email “” Create a new repository git clone ssh://git12/letect.git cd vlm-event-secondary-detect git switch -c main touch README.md git add RE…...

ctfshow-web入门-反序列化(web254-web258)

目录 1、web254 2、web255 3、web256 4、web257 5、web258 1、web254 传入符合要求的用户名和密码即可&#xff1a; ?usernamexxxxxx&passwordxxxxxx 拿到 flag&#xff1a;ctfshow{e4795ccd-6bff-44b6-a15c-6c679d802e61} 2、web255 整体逻辑代码和上一道差不多 新…...

repo 命令大全详解(第十一篇 repo init)

repo forall 命令用于在指定的项目上执行给定的命令&#xff0c;非常适合批量操作。 参数分类及解释 基本参数 [<project>...]: 可选&#xff0c;指定要操作的项目。如果不指定&#xff0c;则对所有项目执行命令。 示例: repo forall my_project -c "git status&q…...

ComfyUI | 全新ComfyUI前端操作指南:提升你的工作速度!

随着WebUI基本停更&#xff0c;越来越多的AI创作者转向了ComfyUI。 ComfyUI最大的优势是简洁、高效、占用显存低&#xff0c;工作流模式虽然有一点入门难度&#xff0c;但一旦上手&#xff0c;操作非常舒适。 由于原Stable Diffusion团队的参与&#xff0c;ComfyUI的易用度也…...

nginx解决非人类使用http打开的443,解决网安漏扫时误扫443端口带来的问题

一、问题描述 正常访问https的站点时&#xff0c;使用网址https://www.baidu.com&#xff0c;但会有一种错误的访问请求http://www.baidu.com:443&#xff0c;一般都是非人类所为&#xff0c;如漏洞扫描工具&#xff0c;那么请求以后带来的后果是个错误页面 400 Bad Request T…...

黑马 | Reids | 基础篇

黑马reids基础篇 文章目录 黑马reids基础篇一.初始Redis1.1SQL 和 NoSql的区别1.1.1结构化和非结构化1.1.2关联和非关联1.1.3查询方式1.1.4 事务1.1.5总结 1.2 认识Redis1.3 Redis安装启动默认启动&#xff1a;后台启动&#xff1a;开机自启 1.4 Redis客户端1.4.1.Redis命令行客…...

SAP-换登录界面图片

SMW0 二、SM30 &#xff08;将value值删除&#xff0c;登录图片恢复默认&#xff09; 重新登录&#xff0c;更改成功。...

移动 Web核心笔记(二)

空间转换 空间&#xff1a;是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间&#xff0c;Z 轴位置与视线方向相同。 空间转换也叫 3D转换 属性&#xff1a;transform 平移 /*单独设置 z轴效果不明显*/ transform: translate3d(x, y, z); transform: translateX(…...

MySQL创建和管理表

1. 基础知识 存储数据是处理数据的第一步&#xff0c;只有正确地把数据存储起来&#xff0c;才能进行有效的处理和分析。 在 MySQL 中&#xff0c;一个完整的数据存储过程总共有 4 步&#xff0c;分别是创建数据库、确认字段、创建数据表、插入数据。 从系统架构的层次上看…...

【从零开始的LeetCode-算法】910. 最小差值 II

给你一个整数数组 nums&#xff0c;和一个整数 k 。 对于每个下标 i&#xff08;0 < i < nums.length&#xff09;&#xff0c;将 nums[i] 变成 nums[i] k 或 nums[i] - k 。 nums 的 分数 是 nums 中最大元素和最小元素的差值。 在更改每个下标对应的值之后&#xf…...

周报 | 24.10.14-24.10.20文章汇总

为了更好地整理文章和发表接下来的文章&#xff0c;以后每周都汇总一份周报。 周报 | 24.10.7-24.10.13文章汇总-CSDN博客 OpenCV与AI深度学习 | T-Rex Label &#xff01;超震撼 AI 自动标注工具&#xff0c;开箱即用、检测一切-CSDN博客 计算机视觉与机器学习 | 目标检测 …...

Codeforce 980 Div2 A-D 题解

A. Profitable Interest Rate 原题 A. Profitable Interest Rate 思路 易推出公式 2 * a - b 代码 #include <bits/stdc.h> //#define int long long#define F(i, a, b) for (int i (a); i < (b); i) #define dF(i, a, b) for (int i (a); i > (b); i--)usi…...

一次代码优化的过程

场景说明&#xff1a; wpf项目&#xff0c;有4个不同的页面&#xff0c;共用一个next按钮&#xff0c;实现点击后跳转到下一个页面。 第一个页面是导入文件&#xff0c;当有2个及以上文件时&#xff0c;会弹窗提示。如下图所示&#xff1a; 之前和之后的代码对比&#xff1a; 之…...

多线程的学习(1)

线程的创建方式 1.继承Thread类 package duoXianCheng;public class MyThread extends Thread{public void run(){System.out.println("hoh");}public static void main(String[] args) {MyThread m1 new MyThread();m1.start();//start启动线程&#xff0c;调用重…...

PyCharm借助MobaXterm跳板机连接服务器

服务器信息&#xff1a; Step 1 MovaXterm→Session→SSH输入服务器信息 Step 2 MovaXterm→Session→SSH→Network setting→SSG gateway(jump host) 输入跳板机信息 键入密码即可 Step 3 MovaXterm→Tunneling→New SSH tunnel 依次输入&#xff1a;A本机端口&#xff0c…...

计算机毕业论文基于Android 的签到系统设计与实现

计算机专业本科毕业设计(论文)开题报告 毕业设计(论文)题目:基于Android的签到系统设计与实现 文章目录 毕业设计论文开题报告一、课题的目的及意义(含国内外的研究现状分析):二、课题任务、重点研究内容、实现途径、条件:摘 要1. 绪论1.1. 研究背景1.2. 研究现状1.3.…...

量化学习-02

1、宏观经济学基础概念 宏观经济简单背景 宏观经济&#xff0c;就是在宏观范畴以全局视角观察经济现象&#xff0c;分析其中的经济总量。该宏观范畴所包含的范围可以指一个国家或地区&#xff0c;是由众多微观个体组成的一个经济体&#xff0c;而这里面的微观个体可以指一个家…...

CnOpenData 沪市IPO发行文件-B来源

IPO(Initial Public Offing)&#xff0c;即首次公开募股&#xff0c;是指一家企业(发行人)第一次将它的股份向公众出售。资本市场是现代金融体系的核心&#xff0c;是企业最高效的融资渠道和最强大的资本运作平台&#xff0c;IPO作为公司登陆资本市场的唯一路径&#xff0c;将使…...

【MATLAB自编程求解二维质量守恒方程+动量守恒NS方程算例】 理论上通过代码极难求解NS方程 1

【MATLAB自编程求解二维质量守恒方程&#xff0b;动量守恒NS方程算例】理论上通过代码极难求解NS方程1.编写了求解NS方程的计算方法2.可通过求解NS方程计算x和y方向的速度场&#xff0c;以及二维整体的压力场3.可自行设置二维几何参数&#xff0c;进口速度等边界条件二维NS方程…...

一个简洁易用的 Delphi JSON 封装库,基于 System.JSON`单元封装,提供更直观的 API

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

嵌入式软件开发中的柔性数组机制

在嵌入式系统开发中,内存资源始终是最核心的约束之一。无论是微控制器还是低功耗控制终端,程序设计都必须在有限的存储空间中实现功能、效率与可靠性的平衡。因此,开发者不仅需要关注算法逻辑,还必须重视数据结构对内存的占用方式。 在这种背景下,柔性数组成为嵌入式软件…...

GOERTEK SPL06-001 LGA-8 压力传感器

关键特性 压力范围:300...1100hPa(99000米...-500米&#xff0c;相对于海平面) 温度范围:-40...85C 供电电压:1.7.. 3.6V (VDD) ,1.2... 3.6V (VDDIO)封装:带金属盖的LGA封装 小尺寸:2.5mmx2.0mm;超薄:0.95mm高度 相对精度:0.06hPa&#xff0c;相当于0.5米 绝对精度:典型值1hPa…...

Redis 不止缓存!从零到一吃透 Redis 向量数据库

前言大模型时代&#xff0c;检索增强生成&#xff08;RAG&#xff09;、智能推荐、多模态检索等场景已成为业务创新的核心方向&#xff0c;而向量数据库正是支撑这些场景的底层基石。很多开发者提起向量数据库&#xff0c;第一反应是Milvus、Pinecone这类专业组件&#xff0c;却…...

openclaw添加本地大模型支持接受图片输入

这里写自定义目录标题1.故障现象2.背景3.解法4.排查1.故障现象 openclaw gateway的聊天处&#xff0c;上传图片报错 parseMessageWithAttachments: 1 attachment(s) dropped — model does not support images2.背景 qwen3.5的大模型原本就是多模态的&#xff08;支持图片的…...

如何突破AI编程工具限制?三大核心方案助你效率倍增

如何突破AI编程工具限制&#xff1f;三大核心方案助你效率倍增 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial …...

3步解锁图表数据:用计算机视觉将图像转化为结构化数据的实战秘籍

3步解锁图表数据&#xff1a;用计算机视觉将图像转化为结构化数据的实战秘籍 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾面…...

【西工大主办、连续多届稳定检索】第七届机械仪表与自动化国际学术会议(ICMIA 2026)

2026年第七届机械仪表与自动化国际学术会议&#xff08;ICMIA 2026&#xff09;定于2026年6月26-28日在中国成都隆重举行。随着科学技术的不断发展和工业化的加速&#xff0c;现代工业生产的自动化程度越来越高。而机械仪表自动化作为现代工业控制的重要组成部分&#xff0c;其…...