c++ 定义类 介绍

在 C++ 中,定义类是创建自定义数据类型的基本方法。类可以包含数据成员(变量)和成员函数(方法),以及构造函数、析构函数等特殊成员函数。以下是定义类的一些基本要素和示例:

1. 类的基本结构

类的基本定义包括类名、访问修饰符(如 publicprotectedprivate),以及数据成员和成员函数的定义。

cpp 复制代码
class ClassName {
public:
    // 公有成员
    void publicMethod(); // 成员函数
    int publicData;      // 数据成员

protected:
    // 受保护的成员
    void protectedMethod();
    int protectedData;

private:
    // 私有成员
    void privateMethod();
    int privateData;
};

2. 数据成员和成员函数

  • 数据成员:用于存储类的状态或属性。可以是任何基本数据类型或自定义类型。
  • 成员函数:用于定义类的行为或操作数据成员的功能。
2.1 数据成员示例
cpp 复制代码
class Person {
public:
    std::string name; // 公有数据成员
    int age;
};
2.2 成员函数示例
cpp 复制代码
class Person {
public:
    void setName(const std::string& newName) {
        name = newName; // 修改数据成员
    }

    std::string getName() const {
        return name; // 访问数据成员
    }

private:
    std::string name;
    int age;
};

3. 构造函数和析构函数

  • 构造函数:用于初始化类的对象。构造函数在对象创建时自动调用。
cpp 复制代码
class Person {
public:
    Person(const std::string& newName, int newAge) : name(newName), age(newAge) {
        // 初始化数据成员
    }

private:
    std::string name;
    int age;
};
  • 析构函数:用于清理资源,通常在对象销毁时自动调用。
cpp 复制代码
class Person {
public:
    ~Person() {
        // 清理资源
    }
};

4. 成员函数的定义

成员函数可以在类定义内定义(内联),或在类外定义:

4.1 内联定义
cpp 复制代码
class Person {
public:
    void setName(const std::string& newName) {
        name = newName; // 成员函数实现
    }

private:
    std::string name;
};
4.2 外部定义
cpp 复制代码
class Person {
public:
    void setName(const std::string& newName);

private:
    std::string name;
};

// 成员函数的外部定义
void Person::setName(const std::string& newName) {
    name = newName;
}

5. 访问修饰符

  • public:公有成员,可以被任何函数访问。
  • protected:受保护成员,只能被该类及其派生类访问。
  • private:私有成员,只能被该类内部的函数访问。

6. 类的实例化

定义类之后,可以创建类的对象(实例):

cpp 复制代码
int main() {
    Person person;               // 创建对象
    person.setName("Alice");     // 调用成员函数
    std::cout << person.getName(); // 访问数据成员
    return 0;
}

7. 类的继承

类可以通过继承机制扩展现有类的功能:

cpp 复制代码
class Student : public Person {
public:
    void setStudentID(int id) { studentID = id; }

private:
    int studentID;
};

继承允许派生类继承基类的公有和受保护的成员,并可以重写基类的成员函数以实现多态。

相关推荐
灰色人生qwer2 分钟前
VS Code 配置Java环境
java·开发语言
yyy(十一月限定版)3 分钟前
C语言——排序算法
c语言·开发语言·排序算法
tgethe3 分钟前
Java 链表(LinkedList)
java·开发语言·链表
小鸡吃米…13 分钟前
Python - 多重继承
开发语言·python
曼巴UE521 分钟前
UE C++ 字符串编码转码
c++·ue5
catchadmin28 分钟前
使用 PHP 和 WebSocket 构建实时聊天应用 完整指南
开发语言·websocket·php
青山是哪个青山30 分钟前
第三节:CMake 工程实践场景笔记
c++·cmake
我命由我123451 小时前
Java 开发问题:包名 ‘com.my.compressimagetest‘ 与同名的类发生冲突
java·开发语言·学习·java-ee·intellij-idea·学习方法·intellij idea
APIshop1 小时前
用第三方爬虫调用「淘宝评论 API」全流程实战
开发语言·爬虫
⑩-1 小时前
Sleep与Wait的区别
java·开发语言