初识C++:类和对象

初识 C++:类和对象(零基础友好版)

C++ 是面向对象编程(OOP)的经典代表语言,而类(class)对象(object)是面向对象编程最核心、最基础的概念。

1. 类和对象到底是什么?(用生活比喻)

想象你去买手机:

  • 类(class) → 手机的设计图纸 / 蓝图
    它定义了手机长什么样、有哪些功能(屏幕大小、摄像头、电池容量、打电话、拍照等)
  • 对象(object) → 根据设计图纸实际生产出来的每一台手机
    iPhone 16 Pro Max 是类 → 你手里正在用的那台 iPhone 16 Pro Max 就是对象

一句话总结

类是抽象的模板/蓝图,对象是根据模板创建的具体实例。

2. C++ 中如何定义一个类(最简单写法)

#include <iostream>
#include <string>
using namespace std;

// 定义一个类(模板)
class Student {
public:                    // 访问权限:public 表示外部可以直接访问
    // 成员变量(属性、数据)
    string name;           // 姓名
    int age;               // 年龄
    double score;          // 分数

    // 成员函数(行为、方法)
    void introduce() {
        cout << "我叫" << name 
             << ",今年" << age 
             << "岁,这次考试得了" << score << "分!" << endl;
    }
};

关键点解释

  • class 关键字定义类(也可以用 struct,后面会讲区别)
  • 类里面可以放:
  • 成员变量(数据) → 相当于对象的“状态”
  • 成员函数(方法) → 相当于对象能“做什么”
  • public: 目前先理解为“让外面的人能看到、能用这些成员”

3. 如何创建对象(实例化)

int main() {
    // 创建对象(实例化)——方式1:栈上创建(最常用)
    Student s1;               // s1 是一个 Student 类型的对象
    s1.name = "张三";
    s1.age = 18;
    s1.score = 92.5;

    // 调用成员函数
    s1.introduce();

    // 方式2:堆上创建(需要手动 delete)
    Student* s2 = new Student();
    s2->name = "李四";
    s2->age = 19;
    s2->score = 88.0;
    s2->introduce();

    delete s2;   // 不要忘记释放!

    return 0;
}

两种创建方式对比

方式语法内存位置生命周期访问方式是否需要 delete
栈上创建Student s1;作用域结束自动销毁.不用
堆上创建new Student()手动 delete 前都存在箭头 ->必须

推荐:初学阶段优先使用栈上创建,更安全、更简单。

4. 再加点料:带参数的成员函数

class Student {
public:
    string name;
    int age;
    double score;

    // 成员函数可以带参数
    void setInfo(string n, int a, double s) {
        name = n;
        age = a;
        score = s;
    }

    void introduce() {
        cout << "我叫" << name << "," << age << "岁,分数:" << score << endl;
    }
};

int main() {
    Student s;
    s.setInfo("王五", 17, 95.5);
    s.introduce();
    return 0;
}

5. class 和 struct 的区别(常见面试题)

特性classstruct
默认访问权限private(私有)public(公有)
继承时默认方式private 继承public 继承
现代 C++ 习惯用于需要封装的复杂对象用于简单的数据聚合(POD 类型)
写法推荐写类用 class写简单结构体用 struct

现代写法建议

  • 需要封装(隐藏实现细节)→ 用 class
  • 只是简单的数据容器 → 用 struct

6. 目前最容易犯的几个错(新手雷区)

  1. 忘记写 public:
    → 成员默认是 private,外面访问不了
  2. 类定义后面忘记加分号 ;
   class Student { ... }   // 正确
   class Student { ... }   // 错误!漏分号
  1. 对象没初始化就使用
    → 成员变量可能是随机值(尤其是基本类型)
  2. 混淆 .->
  • 对象本身用 .
  • 指针用 ->

7. 小练习(自己动手写一写)

请你定义一个 Car 类,包含:

  • 成员变量:brand(品牌 string)、price(价格 double)、speed(当前速度 int)
  • 成员函数:
  • void setInfo(string b, double p)
  • void accelerate(int add) → 速度增加 add
  • void show() → 输出品牌、价格、当前速度

然后在 main 中创建一辆车,设置信息,加速几次,最后展示信息。

下一步要学什么?

掌握了最基础的类和对象后,接下来强烈建议按这个顺序继续:

  1. 构造函数(3 种常见:默认、有参、拷贝)
  2. 析构函数(对象销毁时自动调用)
  3. this 指针
  4. 封装(private + getter/setter)
  5. 初始化列表
  6. 友元(friend)
  7. 静态成员(static)
  8. 对象数组 / 深拷贝 vs 浅拷贝

类和对象是 C++ 的灵魂,多写、多 debug 是最快的进步方式。

有代码写不出来、报错看不懂,或者想看完整的小练习答案,随时告诉我,我帮你一步步分析和完善!

文章已创建 4424

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部