服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 探索类中的成员对象与封闭类

探索类中的成员对象与封闭类

2024-04-02 14:30AI让生活更美好 C/C++

C++作为一种强大而灵活的编程语言,提供了丰富的面向对象编程(OOP)特性,其中成员对象与封闭类是其重要组成部分之一。

C++作为一种强大而灵活的编程语言,提供了丰富的面向对象编程(OOP)特性,其中成员对象与封闭类是其重要组成部分之一。

探索类中的成员对象与封闭类

一、认识成员对象与封闭类

在类中,成员对象是指一个对象包含在另一个对象中,它们之间建立了一种关联关系。而封闭类则是包含其他类或对象的类,形成了一种层次结构。成员对象与封闭类的结合运用,为程序设计提供了良好的组织结构和管理方式。

二、代码解释:封闭类的应用示例

让我们通过一个简单的示例来说明封闭类的应用。假设我们要设计一个图书馆系统,其中包括图书(Book)、读者(Reader)和管理员(Librarian)三个类。我们可以使用封闭类来表示图书馆系统,其中读者和管理员作为成员对象被包含在图书类中。

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

class Librarian; // 提前声明,因为在Reader类中会用到Librarian类

class Book {
private:
    string title;
    string author;
    int year;
    Librarian* librarian; // 成员对象
public:
    Book(string t, string a, int y) : title(t), author(a), year(y), librarian(nullptr) {}

    void setLibrarian(Librarian* l) {
        librarian = l;
    }

   void showInfo() {
        cout << "Title: " << title << endl;
        cout << "Author: " << author << endl;
        cout << "Year: " << year << endl;
        if (librarian != nullptr) {
            cout << "Librarian: " << librarian->getName() << endl;
        } else {
            cout << "Not assigned to any librarian" << endl;
        }
    }
};

class Librarian {
private:
    string name;

public:
    Librarian(string n) : name(n) {}

    string getName() {
        return name;
    }
};

class Reader {
private:
    string name;


public:
    Reader(string n) : name(n) {}

    void borrowBook(Book& book, Librarian& librarian) {
        book.setLibrarian(&librarian);
        cout << name << " borrowed book: " << book.showInfo() << endl;
    }
};

int main() 
{
    Book book("The Great Gatsby", "F. Scott Fitzgerald", 1925);
    Librarian librarian("Alice");
    Reader reader("Bob");

    reader.borrowBook(book, librarian);
    return 0;
}

在上面的示例中,我们定义了三个类:Book(图书)、Librarian(管理员)和Reader(读者)。在Book类中,我们使用成员对象的方式将管理员对象包含在图书对象中。当读者借阅图书时,我们通过调用borrowBook方法将图书对象的成员对象(管理员)赋值,并输出借阅信息。

三、封闭类的优势与应用

封闭类的应用带来了许多优势,包括:

  • 组织结构清晰:封闭类可以将相关联的类或对象组织起来,形成清晰的程序结构,方便程序设计和管理。
  • 提高可维护性:封闭类可以将程序的各个部分封装在一起,提高了代码的可维护性和可复用性,降低了代码的耦合度。
  • 灵活性和扩展性:封闭类可以根据需求动态添加或修改成员对象,从而实现程序的灵活性和扩展性,满足不同场景的需求。

四、总结

成员对象与封闭类是C++面向对象程序设计的重要概念,它们为程序设计带来了更高的灵活性和可维护性。通过深入理解成员对象与封闭类的原理与应用,我们可以更好地利用C++语言特性进行程序设计,提高程序的质量和效率。

原文地址:https://mp.weixin.qq.com/s?__biz=MzkwMDQxNjE4OA==&mid=2247491930&idx=1&sn=db3afc1b29feadd0160a699bae1e7465

延伸 · 阅读

精彩推荐
  • C/C++C++利用静态成员或类模板构建链表的方法讲解

    C++利用静态成员或类模板构建链表的方法讲解

    这篇文章主要介绍了C++利用静态成员或类模板构建链表的方法讲解,链表是基础的数据结构,而在C++中构件单链表还是稍显复杂,需要的朋友可以参考下...

    hzy37745732021-03-29
  • C/C++C++和python实现单链表及其原理

    C++和python实现单链表及其原理

    这篇文章主要介绍了C++和python实现单链表及其原理,单链表是链表家族中的一员,每个节点依旧由数据域(data)和指针域(next)组成,链表的具体概念下面...

    机器学习入坑者7932022-10-17
  • C/C++c++11&14-多线程要点汇总

    c++11&14-多线程要点汇总

    这篇文章主要介绍了c++11&14-多线程的使用方法,文中代码非常详细,方便大家更好的参考和学习,感兴趣的朋友快来了解下...

    晟夏的叶4442021-09-09
  • C/C++C++ primer超详细讲解顺序容器

    C++ primer超详细讲解顺序容器

    本文主要介绍了C++顺序容器(vector、deque、list)的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    扑街男孩4562023-02-16
  • C/C++C语言实现个人财务管理软件

    C语言实现个人财务管理软件

    这篇文章主要为大家详细介绍了C语言实现个人财务管理软件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Sriven5172022-12-12
  • C/C++给C语言初学者的学习建议

    给C语言初学者的学习建议

    在本篇文章里小编给大家分享的是关于C语言学习建议的相关内容,有兴趣的朋友们可以学习参考下。...

    少儿编程9272021-09-13
  • C/C++C语言的函数概念与规则你了解吗

    C语言的函数概念与规则你了解吗

    这篇文章主要介绍了C语言中的函数概念与规则,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下,希望能给你带来帮助...

    宝全哥哥5462021-12-23
  • C/C++C++ 正则表达式的应用详解

    C++ 正则表达式的应用详解

    正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某...

    自首的小偷7862022-03-03