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 | 常量,枚举值,宏名 |
特殊命名法则1 | g_countName | 全局变量 |
特殊命名法则2 | m_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开发时最基础且最重要的是命名规范,掌握良好的命名规范能增加代码的可读性。 认识文件: .cpp:C 源文件. .h或.hpp:C 头文件 .tpp模板实现文件(如果模板定义和实现分开) .inl内联文件,…...

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

Gitlab 完全卸载–亲测可行
1、停止gitlab gitlab-ctl stop2.卸载gitlab(注意这里写的是gitlab-ce) rpm -e gitlab-ce 3、查看gitlab进程 ps aux | grep gitlab 4、杀掉第一个进程(就是带有好多.............的进程) 5、删除所有包含gitlab文件 find / …...

gitlab操作和管理
详细的说明下这几条指令: 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 传入符合要求的用户名和密码即可: ?usernamexxxxxx&passwordxxxxxx 拿到 flag:ctfshow{e4795ccd-6bff-44b6-a15c-6c679d802e61} 2、web255 整体逻辑代码和上一道差不多 新…...

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

ComfyUI | 全新ComfyUI前端操作指南:提升你的工作速度!
随着WebUI基本停更,越来越多的AI创作者转向了ComfyUI。 ComfyUI最大的优势是简洁、高效、占用显存低,工作流模式虽然有一点入门难度,但一旦上手,操作非常舒适。 由于原Stable Diffusion团队的参与,ComfyUI的易用度也…...

nginx解决非人类使用http打开的443,解决网安漏扫时误扫443端口带来的问题
一、问题描述 正常访问https的站点时,使用网址https://www.baidu.com,但会有一种错误的访问请求http://www.baidu.com:443,一般都是非人类所为,如漏洞扫描工具,那么请求以后带来的后果是个错误页面 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安装启动默认启动:后台启动:开机自启 1.4 Redis客户端1.4.1.Redis命令行客…...

SAP-换登录界面图片
SMW0 二、SM30 (将value值删除,登录图片恢复默认) 重新登录,更改成功。...

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

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

【从零开始的LeetCode-算法】910. 最小差值 II
给你一个整数数组 nums,和一个整数 k 。 对于每个下标 i(0 < i < nums.length),将 nums[i] 变成 nums[i] k 或 nums[i] - k 。 nums 的 分数 是 nums 中最大元素和最小元素的差值。 在更改每个下标对应的值之后…...

周报 | 24.10.14-24.10.20文章汇总
为了更好地整理文章和发表接下来的文章,以后每周都汇总一份周报。 周报 | 24.10.7-24.10.13文章汇总-CSDN博客 OpenCV与AI深度学习 | T-Rex Label !超震撼 AI 自动标注工具,开箱即用、检测一切-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…...

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

多线程的学习(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启动线程,调用重…...

PyCharm借助MobaXterm跳板机连接服务器
服务器信息: Step 1 MovaXterm→Session→SSH输入服务器信息 Step 2 MovaXterm→Session→SSH→Network setting→SSG gateway(jump host) 输入跳板机信息 键入密码即可 Step 3 MovaXterm→Tunneling→New SSH tunnel 依次输入:A本机端口,…...

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

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

SAP_MM模块-设置业务合作伙伴类型字段必输(多种方案)
一、业务背景 公司需要把供应商增加一个细分的维度,并且要求该字段设置为必输,防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段:业务合作伙伴类型,本文主要讲解如何设置该字段设置为必填; 注意ÿ…...

STM32平台上实现串口接收不定长数据-实际项目中应用
文章目录 一、中断串口监听方式初始化中断处理串口监听 二、空闲中断方式三、空闲中断DMA方式四、总结 本文将详细介绍在STM32平台上实现串口接收不定长数据的几种方法 一、中断串口监听方式 这种方式也是我早期使用的方式,直接使用寄存器来操作,这种方…...

AWD入门
一、简介 AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人…...

T3矩阵看功率
每个像素的T3矩阵,功率等于特征值的和。 不同的像素的T3矩阵相加,可不能用特征分解的相加,因为两个T矩阵的特征向量不同...

VLMEvalKit多模态大模型评测工具源码解析
vlmeval/api和vlmeval/vlm文件夹下分别是api接口和本地运行的大模型的代码 基类都是base vlmeval/dataset是数据集处理代码 vlmeval/inference.py是推理代码 run.py的整个流程 1 vlmeval/api/base.py 主要为需要与外部API交互的系统提供了一个通用的框架 类属性 allowed_type…...

将 Docker 安装到指定目录
将 Docker 安装到指定目录 将 Docker 安装到指定目录 Docker 默认安装在 C:\Program Files\Docker\Docker,这可能会占用大量 C 盘空间。你可以按以下步骤将 Docker 安装到其他盘(例如 E 盘): 创建安装目录:在 E 盘创…...

哪些企业需要部署SD-WAN?
首先,让我们先明确SD-WAN的定义。SD-WAN,中文全称为软件定义广域网(Software-Defined Wide Area Network),通过集中化管理与流量控制,帮助企业优化网络性能,提升用户体验。与传统广域网…...

通信基站类型、频段与网络标准
【1】通信基站类型 移动通信基站根据覆盖面积和功率大小主要可以分为以下几种类型: 宏基站(宏站):这是最常见的基站类型,具有较大的发射功率和较广的覆盖范围,通常覆盖半径从1到25公里不等。宏基站主要用于…...

Java IO教程之Java 文件一口气讲完!( *︾▽︾)
Java 文件 Java IO教程 - Java文件 File类的对象是文件或目录的路径名的抽象表示。 创建文件 我们可以从中创建一个 File 对象 路径名父路径名和子路径名URI(统一资源标识符) 我们可以使用File类的以下构造函数之一创建一个文件: File(…...

如何在 Ubuntu 24 上安装 Vmware Tools
原文 Vmware Tools作用 增强图形显示性能 分辨率适配 可使虚拟机的分辨率能够自动适应窗口大小的变化。当您调整 VMware 软件窗口的大小时,Ubuntu 24 虚拟机的屏幕分辨率会随之自动调整,为用户提供更好的视觉体验,方便在不同的使用场景下进…...