【C++类的基本概念与定义】

C++类的基本概念与定义

1、类的本质

C++ 中的类(Class)是面向对象编程(OOP)的核心,核心思想是 "将数据和行为绑定",实现代码的封装、复用和模块化。

类是用户自定义的数据类型,封装了数据(成员变量 / 属性)和操作数据的方法(成员函数 / 方法),

class 类名 {

// 访问权限修饰符(默认private)

private: // 私有成员:仅类内部可访问(默认)

私有成员变量/函数;

public: // 公有成员:类外部可访问(接口)

公有成员变量/函数;

protected: // 保护成员:类内部+子类可访问

保护成员变量/函数;

}; // 注意分号结尾

访问权限修饰符的区别说明:

修饰符 访问范围

private 仅类内部(成员函数)可访问 成员变量默认设为 private,保护数据

public 类内部 + 外部均可访问 成员函数(接口)设为 public

protected 类内部 + 子类可访问 竞赛中极少用(几乎不用继承)

2、举例说明

#include

#include

#include

using namespace std;

// 基础版本学生类

class Student {

private:

string name;

int age;

string studentId;

double score;

public:

// 带参数的构造函数

Student(string n, int a, string id) {

name = n;

age = a;

studentId = id;

score = 0.0;

cout << "三参数构造函数被调用: " << name << endl;

}

// 完整参数的构造函数

Student(string n, int a, string id, double s)

: name(n), age(a), studentId(id), score(s) {

cout << "四参数构造函数被调用: " << name << endl;

}

// 析构函数

~Student() {

cout << "析构函数被调用: " << name << " 被销毁" << endl;

}

// 成员函数(方法)

void displayInfo() const {

cout << "========== 学生信息 " << endl;
cout << "姓名: " << name << endl;
cout << "年龄: " << age << endl;
cout << "学号: " << studentId << endl;
cout << "成绩: " << score << endl;
cout << "================" << endl;

}

};

3、构造函数(初始化对象)

核心特性

函数名与类名完全相同,无返回值(连void都没有);

实例化对象时自动调用,用于初始化成员变量;

可重载(多个构造函数,参数列表不同);

若未定义构造函数,编译器会生成默认构造函数(无参,空实现)。

4、析构函数(清理资源)

核心特性

函数名:~类名(),无返回值、无参数;

对象销毁时自动调用(如超出作用域、delete 释放);

仅能有一个析构函数,不可重载;

若未定义,编译器生成默认析构函数(空实现)。

相关推荐
We་ct3 分钟前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
skywalk816311 分钟前
在考虑双轨制,即在中文语法的基础上,加上数学公式的支持,这样像很多计算将更加简单方便,就像现在的小学数学课本里面一样,比如:定x=2*x + 1
开发语言
小书房14 分钟前
Kotlin的by
android·开发语言·kotlin·委托·by
王老师青少年编程27 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii
zh_xuan29 分钟前
libcurl调用https接口
c++·libcurl
就叫飞六吧31 分钟前
QT写一个桌面程序exe并动态打包基本流程(c++)
开发语言·c++
蜡笔小马32 分钟前
1.c++设计模式-工厂模式
c++
threelab40 分钟前
Three.js 代码云效果 | 三维可视化 / AI 提示词
开发语言·javascript·人工智能
V搜xhliang02461 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
kaikaile19951 小时前
风、浪、流环境模型的船舶三自由度(纵荡、横荡、艏摇)运动仿真MATLAB
开发语言·人工智能·matlab