C++57个入门知识点_16 类的标准写法(类名、成员变量、成员函数及对象命名规则;成员变量一般为私有,成员函数为公有并暴露给外部使用成员变量;防止类过大,声明写在.h,实现写在.cpp,调用.h)

上篇:C++57个入门知识点_15 类及类的访问权限(C++数据及数据操作方法放在一起组成结构体的思想即为封装;关键字:Class;面向对象语言的3个基本特点:封装、继承、多态;修改实参方法;类默认为私有)中介绍到类的3种访问权限,类和结构体最大的区别即为其访问权限,结构体的默认访问权限为公有的,类的默认访问权限是私有的。本节接上篇介绍C++中类的标准规范。

C++中类的规范总结:
1.类名及成员变量、成员函数的一般命名规则:
(1) 类名: 单词首字母大写前加大写C CWashMachine
(2)成员变量: m_名称,名称第一个单词或字母小写,后首字母为大写,n表示数据 m_nWidthp表示指针 m_pWidths表示string m_sWidth成员变量一般为私有);
(3)成员函数: 单词首字母为大写 SetHour();
请注意:Qt中习惯首字母小写,后首字母大小即变为setHour()成员函数一般部分公有);
(4)对象名: 名称第一个单词或字母小写,后首字母为大写 dataExch;

2. 类内的成员变量一般设置为私有,成员函数设置为公有,成员函数暴露给外部使用成员变量

3. 类的声明一般写在.h文件,函数实现写在.cpp文件,调用时只需包含.h的声明即可。

1. 类名及成员变量、成员函数的一般命名规则


//class--类:命名一般是在前加C,默认为私有权限
class CWashMchine {

//成员变量一般私有
private:	
	//数据成员/成员变量(member)命名规范前加m_
	int m_nWidth;
	int m_nHeight;
	int m_nLength;
	int m_nType;//类型(滚筒,波轮)
	int m_nBland;//品牌
//成员函数一般公有
public:
	//成员函数
	void wash(Cloth& cl) {
		printf("洗衣服 颜色=%d 大小=%d\r\n", cl.nColor, cl.nSize);
	}
}

2. 类内的成员变量一般设置为私有,成员函数设置为公有,成员函数暴露给外部使用成员变量

2.1 为什么不建议将成员变量设置为public

以手表为例,当你需要修改一个手表的时间,可以将手表的时分秒等成员变量设置为public,从而就可以让用户在main函数中进行使用,但是这种方法类似于你将手表拆解开,然后用手指去拨动指针到某一个时间,很暴力,有可能就损坏 了手表
如果用户设置m_nHour=25,程序中也是可以的,但是时钟是没有25的。

#include <iostream>

class CClock {
//成员变量是类的内部属性,如果为public,可能将内部的变量修改,破坏封装
public:
	int m_nHour;
	int m_nMinute;
	int m_n_Second;
};

int main(int argc, char* argv[])
{
	CClock clock;
	clock.m_nHour = 1;
	return 0;
}

2.2 成员变量设置为private,成员函数设置为public的原因


我们在写一个类的时候,也是不希望用户可以直接修改类中的成员变量,一般而言我们会将类的成员变量私有。 成员变量是类的内部属性,如果为public,可能将内部的变量修改,破坏封装
只能通过一个public函数类暴露给外面的调用者使用类的成员变量,而在函数内部可以对数据的调用进行检查 这样的写法类似于手表提供了按钮让你去调整时间,而不是暴力的拆开手表设置时间。

class CClock {

	//成员变量是类的内部属性,如果为public,可能将内部的变量修改,破坏封装
private:
	int m_nHour;
	int m_nMinute;
	int m_n_Second;

public:
	//成员函数来暴露给外面的调用者使用
	//函数需要声明
	void SetHour(int nHour)
	{
	if (nHour >= 24 || nHour < 0)
	{
		return;
	}
	m_nHour = nHour;
	};
};

int main(int argc,char* argv[])
{
	CClock clock;
	clock.SetHour(25);
	return 0;
}

3. 类的声明一般写在.h文件,函数实现写在.cpp文件


一般而言,我们不希望类里面越写越大,要将声明与实现分开,类的声明一般写在.h文件,函数实现写在.cpp文件,这里以一个CClock类为例:

3.1 包含类的项目的整体结构

整体结构如图,clock.h中放类的声明,clock.cpp放函数实现:
在这里插入图片描述

3.2 VS中添加.h和.cpp文件的方法

在这里插入图片描述
在这里插入图片描述

3.3 Clock类的写法及调用

(1)clock.h内容:一般类的声明部分

#pragma once
//手表
//声明一般写在.h文件中
class CClock {

//成员变量是类的内部属性,如果为public,可能将内部的变量修改,破坏封装
private:
	int m_nHour;
	int m_nMinute;
	int m_n_Second;

public:
	//成员函数来暴露给外面的调用者使用
	//函数需要声明
	int GetHour();
	void SetHour(int nHour);
};


(2) clock.cpp中内容:实现一般写在.cpp中,为了避免class内过大,将函数写在类的外边,但需要加上::,代表在类的作用域

#include "clock.h"

//为了避免class内过大,将函数写在类的外边,但需要加上::,代表在类的作用域
//实现一般写在.cpp中
//get set
int CClock::GetHour() {
	return m_nHour;
}

void CClock::SetHour(int nHour) {
	//函数内部
	if (nHour >= 24 || nHour < 0)
	{
		return;
	}
	m_nHour = nHour;
}

(3)如何调用类的成员:因为.h中包含了所有的声明,在调用的文件中加"#include “clock.h” "即可

test.cpp(用户)中内容:


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

//某一个函数不是孤立存在的,是依靠某一个对象存在的
int main(int argc,char* argv[])
{
	CClock clock;
	clock.SetHour(25);
	return 0;
}

4.学习视频地址:C++57个入门知识点_16 类的标准写法

  • 22
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值