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

C++ 中的类(class)和对象(object)

在 C++ 中,类(class)和对象(object)是面向对象编程(OOP)的核心概念。类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起。对象则是类的实例,通过创建对象可以使用类中定义的成员变量和成员函数。下面详细介绍 C++ 中类和对象的相关知识。

1. 类的定义

类的定义使用 class 关键字,其基本语法如下:

class 类名 {// 访问修饰符:public、private、protectedpublic:// 公有成员,外部可以直接访问// 成员变量数据类型 成员变量名;// 成员函数声明返回类型 成员函数名(参数列表);private:// 私有成员,外部不能直接访问,只能通过公有成员函数访问数据类型 成员变量名;protected:// 受保护成员,在派生类中可以访问数据类型 成员变量名;
};  // 注意这里的分号不能省略

示例代码:

#include <iostream>// 定义一个名为 Person 的类
class Person {
public:// 公有成员变量std::string name;int age;// 公有成员函数,用于显示信息void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};

2. 对象的创建和使用

定义好类之后,就可以创建该类的对象,并使用对象来访问类的成员变量和成员函数。创建对象的语法如下:

类名 对象名;

示例代码:

#include <iostream>class Person {
public:std::string name;int age;void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {// 创建 Person 类的对象Person person1;// 访问对象的成员变量并赋值person1.name = "张三";person1.age = 20;// 调用对象的成员函数person1.displayInfo();return 0;
}

3. 构造函数和析构函数

  • 构造函数:是一种特殊的成员函数,用于在创建对象时初始化对象的成员变量。构造函数的名称与类名相同,没有返回类型。
  • 析构函数:也是一种特殊的成员函数,用于在对象销毁时进行一些清理工作。析构函数的名称是在类名前加上波浪号 ~,同样没有返回类型。

示例代码:

#include <iostream>class Person {
public:std::string name;int age;// 构造函数Person(std::string n, int a) {name = n;age = a;std::cout << "对象已创建" << std::endl;}// 析构函数~Person() {std::cout << "对象已销毁" << std::endl;}void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {// 使用构造函数创建对象Person person("李四", 25);person.displayInfo();return 0;
}

4. 访问修饰符

C++ 中有三种访问修饰符:

  • public:公有成员可以在类的外部直接访问。
  • private:私有成员只能在类的内部访问,外部不能直接访问,通常通过公有成员函数来间接访问。
  • protected:受保护成员在类的内部和派生类中可以访问,外部不能直接访问。

示例代码:

#include <iostream>class Person {
private:std::string name;int age;public:// 构造函数Person(std::string n, int a) {name = n;age = a;}// 公有成员函数,用于获取私有成员变量的值void displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;}
};int main() {Person person("王五", 30);// 不能直接访问私有成员变量// person.name = "赵六";  // 错误person.displayInfo();return 0;
}

5. 成员函数的实现

成员函数可以在类的定义中直接实现,也可以在类的外部实现。在类的外部实现成员函数时,需要使用作用域解析运算符 ::

示例代码:

#include <iostream>class Person {
private:std::string name;int age;public:Person(std::string n, int a);void displayInfo();
};// 在类的外部实现构造函数
Person::Person(std::string n, int a) {name = n;age = a;
}// 在类的外部实现成员函数
void Person::displayInfo() {std::cout << "姓名: " << name << ", 年龄: " << age << std::endl;
}int main() {Person person("孙七", 35);person.displayInfo();return 0;
}

通过以上内容,你可以了解 C++ 中类和对象的基本概念、定义和使用方法。类和对象是 C++ 面向对象编程的基础,掌握它们对于编写复杂的程序非常重要。

http://www.lryc.cn/news/529582.html

相关文章:

  • 安卓通过网络获取位置的方法
  • 2025 年,链上固定收益领域迈向新时代
  • npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported
  • 11.QT控件:输入类控件
  • deepseek核心技术:MLA架构-多头潜在注意力
  • 讯飞星火大模型API使用Python调用
  • C#面试常考随笔7:什么是匿名⽅法?还有Lambda表达式?
  • Elasticsearch:如何搜索含有复合词的语言
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化
  • idea maven本地有jar包,但还要从远程下载
  • C++编程语言:抽象机制:模板(Bjarne Stroustrup)
  • 深入解析 Linux 内核中的页面错误处理机制
  • 【AIGC专栏】AI在自然语言中的应用场景
  • Ubuntu 20.04安装Protocol Buffers 2.5.0
  • 解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路
  • 计算机组成原理——数据运算与运算器(二)
  • SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇
  • 【AI】DeepSeek 概念/影响/使用/部署
  • javascript-es6 (二)
  • 供应链系统设计-供应链中台系统设计(十四)- 清结算中心设计篇(三)
  • 【自学笔记】MySQL的重点知识点-持续更新
  • X86路由搭配rtl8367s交换机
  • Linux环境基础开发工具的使用(apt, vim, gcc, g++, gbd, make/Makefile)
  • 多模态论文笔记——ViViT
  • 搜索与图论复习1
  • 【数据结构】初识链表
  • 第11章:根据 ShuffleNet V2 迁移学习医学图像分类任务:甲状腺结节检测
  • deepseek+vscode自动化测试脚本生成
  • 深入理解Flexbox:弹性盒子布局详解
  • android Camera 的进化