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

简洁版C++类说明

C++ 类(Class)简明教程

类(Class) 是 C++ 的核心概念,用于封装 数据(成员变量)操作(成员函数),实现面向对象编程(OOP)。


1. 类的基本结构

class ClassName {
private:    // 私有成员(仅类内可访问)int privateVar;void privateFunc() {}protected:  // 保护成员(类内和派生类可访问)int protectedVar;void protectedFunc() {}public:     // 公有成员(任何地方可访问)int publicVar;void publicFunc() {}// 构造函数(初始化对象)ClassName() {privateVar = 0;}// 析构函数(清理资源)~ClassName() {delete[] buffer; // 示例:释放动态内存}
};
  • private(默认):仅类内可访问。
  • protected:类内和派生类可访问。
  • public:任何代码可访问。

2. 核心概念

(1) 构造函数(Constructor)

  • 用于初始化对象,名称与类相同,无返回值。
  • 默认构造函数:无参数,如 ClassName()
  • 带参数构造函数:如 ClassName(int x, int y)
  • 初始化列表:高效初始化成员变量。
    class Point {
    private:int x, y;
    public:Point(int a, int b) : x(a), y(b) {} // 初始化列表
    };
    

(2) 析构函数(Destructor)

  • 用于释放资源(如内存、文件句柄),名称是 ~ClassName()
  • 对象销毁时自动调用。
    ~ClassName() {delete[] buffer; // 释放动态数组
    }
    

(3) 成员函数(Methods)

  • 定义在类内的函数,可操作成员变量。
  • const 成员函数:承诺不修改对象状态。
    int getValue() const { return privateVar; }
    

(4) 访问控制(Access Control)

访问修饰符类内派生类外部代码
private
protected
public

3. 对象(Object)的创建与使用

ClassName obj;               // 默认构造
ClassName obj2(10, "Hello"); // 带参数构造
obj.publicFunc();            // 调用成员函数
obj.publicVar = 5;           // 访问公有变量

4. 特殊成员函数(C++11 起)

  • 拷贝构造函数ClassName(const ClassName& other)
  • 移动构造函数ClassName(ClassName&& other)
  • 拷贝赋值运算符ClassName& operator=(const ClassName& other)
  • 移动赋值运算符ClassName& operator=(ClassName&& other)

5. 类 vs 结构体(class vs struct

  • class:默认成员是 private
  • struct:默认成员是 public(通常用于纯数据存储)。

6. 示例代码

#include <iostream>
using namespace std;class Student {
private:string name;int age;public:// 构造函数Student(string n, int a) : name(n), age(a) {}// 成员函数void display() const {cout << "Name: " << name << ", Age: " << age << endl;}
};int main() {Student stu("Alice", 20);stu.display(); // 输出: Name: Alice, Age: 20return 0;
}

总结

特性说明
封装通过 private/protected 隐藏实现细节。
构造函数初始化对象,支持初始化列表。
析构函数清理资源(如释放内存)。
成员函数操作数据,可标记为 const
访问控制public(开放)、protected(派生类可访问)、private(仅类内)。

核心思想数据 + 操作 = 类,通过访问控制实现封装,提高代码安全性和可维护性。

http://www.xdnf.cn/news/1474.html

相关文章:

  • 第四章:任务工作流编排
  • C语言 ——— 分支循环语句
  • Redis 主从复制
  • Codeforces Round 998 (Div. 3) ABCD
  • 深度解析 Java 中的 `computeIfAbsent`:原理、最佳实践与高级用法
  • Leetcode98、230:二叉搜索树——递归学习
  • 第12章:MCP服务端项目开发实战:数据持久化
  • React Ref引用机制解析
  • 文档构建:Sphinx全面使用指南 — 进阶篇
  • Axure中继器表格:实现复杂交互设计的利器
  • Linux磁盘管理
  • QT项目----电子相册(4)
  • 单片机通讯外设 (UART)、I2C、SPI、CAN 和 LIN 时序分析 使用场景以及优缺点对比分析报告
  • stm32之GPIO函数详解和上机实验
  • Spring Boot中的监视器:Actuator的原理、功能与应用
  • 基于PySide6与CATIA的直齿圆柱齿轮参数化建模系统开发实践
  • 湖南大学-操作系统实验四
  • 将天气查询API封装为MCP服务
  • godot源码编译
  • 【AI News | 20250423】每日AI进展
  • 数据库-基本概述 和 SQL 语言
  • SQL进阶知识:五、存储过程和函数
  • JAVA并发根源问题的讨论与思考
  • 2024沈阳区域赛,D - Dot Product Game
  • Visual Studio2022 配置 SDL3及拓展库
  • 从一个简单的HelloWorld来完整介绍Java的类加载过程
  • Python——流程控制
  • 代码分享:python实现svg图片转换为png和gif
  • linux软硬连接
  • 3.1 Agent定义与分类:自主Agent、协作Agent与混合Agent的特点