从0开始学习C++ 第十四课:类和对象

第十四课:类和对象

学习目标:

  • 熟悉面向对象编程的基本概念。
  • 了解如何在C++中定义类并创建对象。
  • 学习类的成员函数和成员变量的基本用法。

学习内容:

  1. 类的概念:

    • 概念: 类是C++的核心特性,它允许你创建包含属性(成员变量)和方法(成员函数)的数据类型。类定义了对象的蓝图。
  2. 定义类和创建对象:

    • 代码示例:

      cpp 复制代码
      #include <iostream>
      using namespace std;
      
      // 定义一个类
      class Box {
      public:
          double length;   // 长度
          double breadth;  // 宽度
          double height;   // 高度
      
          // 成员函数声明
          double getVolume() {
              return length * breadth * height;
          }
      };
      
      int main() {
          Box Box1;        // 声明Box1,类型为Box
          Box Box2;        // 声明Box2,类型为Box
          double volume = 0.0;     // 用于存储体积
      
          // box 1 的属性赋值
          Box1.length = 6.0; 
          Box1.breadth = 7.0; 
          Box1.height = 5.0;
      
          // box 2 的属性赋值
          Box2.length = 12.0; 
          Box2.breadth = 13.0; 
          Box2.height = 10.0;
      
          // 计算Box1的体积
          volume = Box1.getVolume();
          cout << "Box1 的体积:" << volume << endl;
      
          // 计算Box2的体积
          volume = Box2.getVolume();
          cout << "Box2 的体积:" << volume << endl;
          
          return 0;
      }
    • 预计输出效果:

      复制代码
      Box1 的体积:210
      Box2 的体积:1560
    • 使用场景: 类和对象广泛应用于软件开发中,用于模拟现实世界的各种实体。例如,可以使用类来表示学生、账户、产品等。

练习题: 编写一个C++程序,定义一个名为Person的类,包含私有成员变量nameage,以及一个公有成员函数introduce()来输出个人的自我介绍。在main函数中创建一个Person对象,并通过设置成员变量和调用introduce()函数来输出个人信息。

答案:

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

class Person {
private:
    string name;
    int age;

public:
    // 设置姓名
    void setName(string newName) {
        name = newName;
    }

    // 设置年龄
    void setAge(int newAge) {
        age = newAge;
    }

    // 自我介绍
    void introduce() {
        cout << "My name is " << name << " and I am " << age << " years old." << endl;
    }
};

int main() {
    Person person1;
    person1.setName("Alice");
    person1.setAge(30);
    person1.introduce();

    return 0;
}

预计输出效果:

复制代码
My name is Alice and I am 30 years old.
相关推荐
越甲八千12 分钟前
STL stack为何没有迭代器
c++
心平气和量大福大27 分钟前
C#-WPF-Window主窗体
开发语言·c#·wpf
遇乐的果园1 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_2 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸2 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
可乐奶茶sky2 小时前
AI Agent 学习
人工智能·学习
GIS阵地3 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
王维同学3 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
茯苓gao3 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
程序员Rock3 小时前
上位机开发-MODBUS面试常见问题
c语言·c++·面试·职场和发展·上位机