C++,基本类的定义

在C++中,类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起,从而实现数据的隐藏和模块化设计。以下是关于C++类定义的详细介绍:

基本语法

类的定义以关键字 class 开头,后面跟着类的名称,类的主体用花括号 {} 括起来,最后以分号 ; 结束。基本结构如下:

class ClassName {
    // 访问修饰符
    access_specifier:
        // 成员变量
        data_type member_variable;
        // 成员函数
        return_type member_function(parameters);
};

其中,access_specifier 可以是 privatepublicprotected,用于控制成员的访问权限:

  • private:成员只能在类的内部访问,这是类成员的默认访问级别。
  • public:成员可以在类的外部通过对象访问。
  • protected:成员可以在类的内部以及派生类中访问。

示例代码

下面是一个简单的 Person 类的定义,包含姓名和年龄两个成员变量,以及设置和获取这些信息的成员函数:

#include <iostream>
#include <string>

class Person {
private:
    // 私有成员变量,只能在类的内部访问
    std::string name;
    int age;

public:
    // 构造函数,用于初始化对象
    Person(const std::string& n, int a) : name(n), age(a) {}

    // 公有成员函数,用于设置姓名
    void setName(const std::string& n) {
        name = n;
    }

    // 公有成员函数,用于设置年龄
    void setAge(int a) {
        age = a;
    }

    // 公有成员函数,用于获取姓名
    std::string getName() const {
        return name;
    }

    // 公有成员函数,用于获取年龄
    int getAge() const {
        return age;
    }

    // 公有成员函数,用于显示信息
    void displayInfo() const {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

int main() {
    // 创建 Person 类的对象
    Person person("Alice", 25);

    // 调用成员函数显示信息
    person.displayInfo();

    // 调用成员函数修改信息
    person.setName("Bob");
    person.setAge(30);

    // 再次调用成员函数显示信息
    person.displayInfo();

    return 0;
}

代码解释

  1. 类的定义:定义了一个名为 Person 的类,包含两个私有成员变量 nameage,以及多个公有成员函数。
  2. 构造函数Person(const std::string& n, int a) : name(n), age(a) {} 是构造函数,用于在创建对象时初始化成员变量。
  3. 成员函数: setName 和 setAge 函数用于设置成员变量的值。getName 和 getAge 函数用于获取成员变量的值。displayInfo 函数用于显示对象的信息。
  4. 对象的创建和使用:在 main 函数中,创建了一个 Person 类的对象 person,并调用其成员函数进行信息的显示和修改。

其他要点

  • 析构函数:析构函数用于在对象销毁时进行资源的清理工作,名称为类名前加上波浪号 ~,例如 ~Person()
  • 成员函数的外部定义:成员函数可以在类的外部定义,使用作用域解析运算符 ::,例如:
void Person::setName(const std::string& n) {
    name = n;
}

  • 静态成员:可以定义静态成员变量和静态成员函数,它们属于类本身,而不是类的某个对象。静态成员变量需要在类外进行初始化。

考研机试常用的数据结构 文章被收录于专栏

考研机试常用的数据结构

全部评论

相关推荐

12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务