CPP的类和对象

简介: CPP的类和对象

CPP的类和对象

在C++中,类和对象是面向对象编程(OOP)的两个核心概念。类是对象的抽象描述,它定义了一组具有相同属性和行为的对象的模板。对象则是根据类创建的具体实例,它拥有类中定义的属性和方法。

类(Class)

类是一种用户自定义的数据类型,它封装了数据(成员变量或属性)和操作这些数据的方法(成员函数或行为)。类定义了对象的结构,包括对象可以包含的数据类型以及可以对这些数据执行的操作。

类的声明通常使用class关键字,后面跟着类名和一个花括号包围的类体。类体中包含类的成员变量(数据成员)和成员函数(方法)。

cpp复制代码

 

class MyClass {

 

public:

 

int myVariable; // 数据成员(属性)

 

 

 

// 成员函数(行为)

 

void myFunction() {

 

// 函数体

 

}

 

};

在这个例子中,MyClass是一个类,它有一个公共数据成员myVariable和一个公共成员函数myFunctionpublic关键字表示这些成员是公开的,可以在类的外部访问。

对象(Object)

对象是类的实例。通过类,我们可以创建多个具有相同属性和方法的对象。每个对象都是独立的,并拥有自己的存储空间来存储属性值。

创建对象通常使用类名,后跟一个或多个对象名,并使用对象初始化列表(如果有的话)。

cpp复制代码

 

MyClass obj1; // 创建一个MyClass类的对象obj1

 

MyClass obj2; // 创建另一个MyClass类的对象obj2

现在,obj1obj2都是MyClass的实例,它们都有myVariable这个属性以及myFunction这个方法。但是,它们各自的myVariable可以有不同的值,因为每个对象都有自己的存储空间。

访问对象的属性和方法

通过对象,我们可以访问其属性和调用其方法。如果属性和方法是公开的(使用public关键字声明),则可以直接通过对象访问它们。

cpp复制代码

 

obj1.myVariable = 10; // 设置obj1的myVariable属性值为10

 

obj1.myFunction(); // 调用obj1的myFunction方法

如果属性和方法是私有的(使用private关键字声明),则不能从类的外部直接访问它们,而需要通过类的公有成员函数来访问或修改。这提供了一种封装机制,隐藏了类的内部实现细节,只暴露必要的接口给类的使用者。

构造函数和析构函数

类还可以包含特殊类型的成员函数,称为构造函数和析构函数。构造函数用于初始化对象,而析构函数用于在对象销毁前执行清理操作。

cpp复制代码

 

class MyClass {

 

public:

 

MyClass() { // 构造函数

 

// 初始化代码

 

}

 

 

 

~MyClass() { // 析构函数

 

// 清理代码

 

}

 

 

 

// ... 其他成员 ...

 

};

当创建MyClass的对象时,构造函数会被自动调用。当对象的生命周期结束时(例如,对象离开其作用域或被删除时),析构函数会被自动调用。

类和对象是C++面向对象编程的基础,它们允许我们创建复杂且可维护的代码结构,通过封装、继承和多态等特性来实现更高级的功能。

 

目录
相关文章
|
监控 Java Nacos
微服务轮子项目(02) - 框架技术选型
微服务轮子项目(02) - 框架技术选型
251 0
|
机器学习/深度学习 语音技术 开发工具
【独家秘籍】揭秘!如何用阿里云TTS魔法般将文字瞬间变成天籁之音,让你的作品开口说话,震撼人心!
【8月更文挑战第15天】通过阿里云语音合成服务(TTS),开发者可将文本转为自然语音,适用于有声阅读、客服等场景。首先注册并获取AccessKey ID/Secret,然后安装阿里云Python SDK。使用示例代码设置语音参数(如发音人xiaoyun、引擎wavenet),发送请求并保存生成的MP3文件。注意正确认证及异常处理,以确保应用稳定可靠。
941 0
|
12月前
|
人工智能 自然语言处理 前端开发
从文案到设计,我用通义版Artifacts生成了365张灵感日历
本文介绍了如何利用通义AI的“代码模式”功能,轻松制作个性化日历。作者通过实例展示了从设计日历样式、推荐每日生活小事到赋予小事新解的过程,强调了AI在创意实现上的强大助力。此外,还探讨了AI代码生成技术对未来创造力的影响,以及通义AI代码模式如何降低创作门槛,提高效率,让每个人都能成为应用开发者。
|
移动开发 前端开发 JavaScript
做前端技术方案选型的时候,你是怎么做决策的?
做前端技术方案选型的时候,你是怎么做决策的?
290 0
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
Python IDE 开发工具
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
|
存储 调度
进程和进程的调度
进程和进程的调度
|
Java 关系型数据库 MySQL
基于Java的校园点餐系统的设计与实现(论文+源码)_kaic
基于Java的校园点餐系统的设计与实现(论文+源码)_kaic
|
JavaScript 测试技术
vue不同环境打包环境变量处理
vue不同环境打包环境变量处理
487 0
|
JSON 安全 JavaScript
深入解析XXS攻击
深入解析XXS攻击
1468 2