C++ 类与对象基础入门

C++ 是一门面向对象的编程语言,而“类(class)”正是面向对象的核心。今天我们来简单了解一下类的定义、访问限定符、对象实例化和 this 指针。

一、类的定义

在 C++ 中,类是对一类对象的抽象描述。它定义了对象拥有哪些属性(变量)和行为(函数)。

class Stack
{
public:
    void Push(int x);
    void Pop();

private:
    int _data[100];
    int _top;
};

注意:类定义的最后 一定要加分号 ;

💡 成员分类

  • 成员变量(属性):保存对象的数据。

  • 成员函数(方法):定义对象的行为。

为了区分成员变量,C++ 开发中常用命名规范:

  • _name(前加下划线)

  • m_name(前加 m)

这些都是编码习惯,并不是语法要求。

二、访问限定符

访问限定符(Access Specifier)用于控制成员的访问权限
C++ 中有三种:

限定符含义类外是否可访问
public公有成员✅ 可以访问
protected受保护成员❌ 不能访问(子类可访问)
private私有成员❌ 不能访问
class Person
{
public:
    void SetName(string name);
    void ShowInfo();

private:
    string _name;
    int _age;
};

一般情况下:

  • 成员变量 → 用 privateprotected

  • 成员函数 → 用 public

🧠 小细节

  • class 默认访问权限是 private

  • struct 默认访问权限是 public

    所以在 C++ 中,struct 其实也能定义类,只是默认权限不同。

三、类的实例化

所谓实例化,就是用类创建对象的过程。

Person p;   // 在内存中分配空间,生成一个对象 p

类本身只是一个“模型”或“蓝图”,
而对象才是真正在内存中存在的实体。

举个比喻:

类是图纸,对象是按照图纸造出的房子。

四、this 指针

当类中有多个对象时,比如:

Person p1, p2;

它们都调用同一个成员函数:

p1.SetName("Alice");
p2.SetName("Bob");

那编译器如何知道函数里操作的是哪个对象呢?
👉 这时就用到了 this 指针

🧩 原理解释

编译器会在每个成员函数中,默认加上一个隐藏的形参

void SetName(Person* const this, string name);

所以在函数内部访问成员变量时,本质是:

this->_name = name;

你可以手动写 this 来强调当前对象:

void Print() {
    cout << this->_name << endl;
}

⚠️ 注意:this 只能在类的成员函数中使用。

概念说明
class定义类的关键字
成员变量类的数据(属性)
成员函数类的行为(方法)
访问限定符控制类成员的可见性
实例化用类创建对象的过程
this 指针指向当前对象的隐藏指针
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值