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;
};

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

相关推荐
硬件人某某某8 分钟前
Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
java·开发语言·社区团购小程序·团购小程序·java社区团购小程序
c++初学者ABC20 分钟前
学生管理系统C++版(简单版)详解
c++·结构体·学生管理系统
kucupung21 分钟前
【C++基础】多线程并发场景下的同步方法
开发语言·c++
Quantum&Coder26 分钟前
Objective-C语言的计算机基础
开发语言·后端·golang
L73S3727 分钟前
C++入门(1)
c++·程序人生·考研·蓝桥杯·学习方法
五味香28 分钟前
Java学习,List 元素替换
android·java·开发语言·python·学习·golang·kotlin
Joeysoda31 分钟前
Java数据结构 (从0构建链表(LinkedList))
java·linux·开发语言·数据结构·windows·链表·1024程序员节
迂幵myself31 分钟前
14-6-1C++的list
开发语言·c++·list
扫地僧00934 分钟前
(Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
java·开发语言
天乐敲代码35 分钟前
JAVASE入门九脚-集合框架ArrayList,LinkedList,HashSet,TreeSet,迭代
java·开发语言·算法