【C++】类的使用

一、面向对象的介绍

C++是面向对象的语言,一件事通过多个对象之间交互完成。对象可以是任何事物,可以是人、可以是物。像:人洗衣服,人将衣服放入洗衣机,倒入洗衣粉,启动洗衣机,洗衣机就会完成洗衣服的操作。我们并不需关心洗衣机集体是怎么洗衣服的。

C++中用 来描述对象。 对于初学者,可以把看作是一个仓库,你需要什么就从仓库里拿什么。

二、类的定义

我们也可以定义C语言的struct结构体,不过struct会被升级成为类。

cpp 复制代码
class 自定义的类名
{
    //类的成员
};//末尾有分号

如:
class Date
{
    int a;
};

#类内定义

类的成员可以全在类中定义,类中的所有成员都可以无限制的访问彼此。

cpp 复制代码
class Date
{
public:
	int geta()
	{
		return a;
	}
private:
	int a;
	int b;
};

#类外定义

我们可以让类成员函数在类中声明,在类外定义。不过在类外的函数在成员名前加 -> 类名::。

以此确定该函数属于哪个类。

cpp 复制代码
class Date
{
public:
	int geta();
private:
	int a;
	int b;
};
int Date::geta()
{
	return a;
}

这也说明了,类的成员函数可以份文件编写。将声明放在.h中,定义放在.cpp中。

三、类的访问权限

类有三种访问限定符。分别是:public(公开)、private(私有)、protected(保护)

public修饰的的成员可以被外界直接访问。

private和protect修饰的成员不能被外界直接访问。(两者在这里的功能是类似的)

作用范围:从一个限定符开始,到下一个访问限定符结束(或类结束)。

不写限定符:class默认private,struct默认public。

四、类域

每个类都有自己的作用域,每个成员都在自己对应的类域中。

在类外定义类的成员,需要用**::作用域操作符**指明成员在那个类。

cpp 复制代码
class Date
{
public:
	int geta();
private:
	int a;
	int b;
};
int Date::geta()
{
	return a;
}

五、类的实例化

类在实例化对象之前,并没有实际的空间,类实例化的对象才有真正分配的物理空间。

实例化操作:

cpp 复制代码
class Date
{
public:
	int geta();
private:
	int a;
	int b;
};
int Date::geta()
{
	return a;
}


int main() {
	
	Date day;//对象实例化


	day.geta();//使用  .  调用实例化对象的成员 

}

六、this指针

每一个对象都有一个隐藏的this指针指向它自己。

this指针无法被修改、创建、赋值。

this指针只能在类内使用。

this指针是成员函数的第一个参数,只不过它被隐藏了。

cpp 复制代码
class Date
{
public:
	int geta();

	int Adda(int a)
	{
		this->a = a;//被this指针指向的是类的成员
	}
private:
	int a;//this指针指向它
	int b;
};
相关推荐
D_evil__5 小时前
【Effective Modern C++】第三章 转向现代C++:16. 让const成员函数线程安全
c++
微风中的麦穗6 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146536 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术6 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学6 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
Queenie_Charlie7 小时前
前缀和的前缀和
数据结构·c++·树状数组
mftang7 小时前
Python 字符串拼接成字节详解
开发语言·python
jasligea8 小时前
构建个人智能助手
开发语言·python·自然语言处理
kokunka8 小时前
【源码+注释】纯C++小游戏开发之射击小球游戏
开发语言·c++·游戏
云栖梦泽9 小时前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言