C++传记 类的定义(面向对象)
面向对象编程OOP是C的核心特性之一其核心思想是“封装、继承、多态”而则是实现面向对象编程的基础载体——它本质上是一种自定义的数据类型用于封装一组相关的属性数据和行为函数将数据和操作数据的方法捆绑在一起实现数据的隐藏和模块化让代码更具可读性、可维护性和可扩展性。一、类的核心概念类可以理解为“模板”或“蓝图”它定义了一类事物共同的属性和行为而通过类创建的具体实例对象则是这一模板的具体实现。例如“学生”可以作为一个类它的属性包括姓名、学号、年龄行为包括上课、考试、交作业而具体的学生“张三”“李四”就是这个类的对象。类的核心作用是将类的内部数据属性隐藏起来只通过类提供的公共接口成员函数来访问和操作数据避免外部直接修改内部数据保证数据的安全性和一致性。二、类的定义格式C中类的定义使用关键字基本格式如下分为“类头”和“类体”两部分类体中包含成员变量属性和成员函数行为最后必须以分号结束。class 类名 { // 访问权限控制符public、private、protected 访问权限控制符: 成员变量; // 类的属性数据成员 成员函数声明; // 类的行为成员函数 成员函数实现; // 可在类内实现也可在类外实现 }; // 注意分号不能省略关键说明遵循C标识符命名规则通常首字母大写如Student、Person便于区分普通变量和类名增强代码可读性。C提供三种访问权限用于控制类成员的访问范围是封装特性的核心体现public公有类内、类外均可访问通常用于定义公共接口成员函数供外部调用。private私有仅类内可访问类外无法直接访问通常用于定义内部数据成员变量隐藏内部实现。protected保护类内可访问子类可访问父类外不可访问主要用于继承场景后续笔记详解。用于存储类的属性本质是类内的变量可定义各种数据类型int、string、double等也可定义自定义类型。用于实现类的行为本质是类内的函数可直接访问类的所有成员公有、私有、保护用于操作成员变量、实现具体功能。三、类的定义示例完整演示以“学生类Student”为例完整演示类的定义、成员变量、成员函数的声明与实现类内实现类外实现结合。#include iostream #include string // 用于使用string类型 using namespace std; // 定义Student类 class Student { // 私有成员仅类内可访问数据隐藏 private: string name; // 成员变量姓名 int studentId; // 成员变量学号 int age; // 成员变量年龄 // 公有成员类内、类外均可访问公共接口 public: // 1. 类内实现成员函数简单函数可直接在类内定义 void setInfo(string n, int id, int a) { // 成员函数访问私有成员变量赋值 name n; studentId id; age a; } // 2. 类内声明、类外实现成员函数复杂函数建议类外实现提升代码整洁度 void showInfo(); // 声明显示学生信息 int getAge(); // 声明获取学生年龄只读接口避免直接修改age }; // 类外实现成员函数格式为「类名::成员函数名(参数列表) { 实现代码 }」 void Student::showInfo() { cout 学号 studentId endl; cout 姓名 name endl; cout 年龄 age endl; } int Student::getAge() { return age; // 仅返回年龄不允许外部修改 } // 主函数使用类创建对象调用成员函数 int main() { // 创建Student类的对象实例化 Student stu1; // 调用公有成员函数setInfo给对象赋值无法直接访问stu1.name stu1.setInfo(张三, 2024001, 18); // 调用公有成员函数showInfo显示对象信息 stu1.showInfo(); // 调用公有成员函数getAge获取年龄 cout 该学生的年龄 stu1.getAge() endl; return 0; } // 运行结果 // 学号2024001 // 姓名张三 // 年龄18 // 该学生的年龄18四、类定义的关键注意事项尽量将成员变量设为private通过public成员函数提供访问和修改的接口如示例中的setInfo、getAge避免外部直接操作成员变量防止数据被误修改。必须加上「类名::」作用域解析符否则编译器会将其识别为普通全局函数而非类的成员函数。实际开发中通常将类的声明类头、成员函数声明放在头文件.h中将成员函数的实现放在源文件.cpp中避免重复定义提升代码模块化。类的成员变量不能在定义时直接初始化如int age 18; 错误需通过构造函数后续笔记详解或成员函数如示例中的setInfo进行初始化。类的成员成员变量、成员函数仅在类的作用域内有效外部访问时必须通过对象对象.成员或指针指针-成员访问公有成员。五、类与结构体的区别补充C中的struct结构体与class功能类似均可用于定义自定义类型但核心区别在于struct默认访问权限为publicclass默认访问权限为private。在面向对象编程中优先使用class因为其默认的private权限更符合封装的思想struct更多用于单纯的数据封装无复杂行为。六、总结类的定义是C面向对象编程的基础核心是通过class关键字封装属性成员变量和行为成员函数并通过访问权限控制符实现数据隐藏和接口暴露。掌握类的定义格式、访问权限、成员函数的类内/类外实现是后续学习构造函数、析构函数、继承、多态的前提。核心要点类是模板对象是实例封装是核心权限控访问成员分变量和函数实现可内可外。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2462679.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!