从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.
相关推荐
bkspiderx几秒前
libwebsockets 详解:介绍、交叉编译与使用指南
c++·websocket·libwebsockets
锦瑟弦音2 分钟前
Java与SQL基础知识总结
java·开发语言
my_daling4 分钟前
DSMC通信协议理解,以及如何在FPGA上实现DSMC从设备(1)
学习·fpga开发
大黄说说7 分钟前
React Hooks 与 Class Components 的本质区别:从“面向对象”到“函数式”的范式转移
开发语言
sycmancia15 分钟前
Qt——对话框及其类型
开发语言·qt
趙卋傑20 分钟前
测试开发场景下常见的 MCP 服务
开发语言·python·测试工具·ai编程
@atweiwei20 分钟前
langchainrust:Rust 版 LangChain 框架(LLM+Agent+RAG)
开发语言·rust·langchain·agent·向量数据库·rag
阿里嘎多学长22 分钟前
2026-04-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
嵌入式×边缘AI:打怪升级日志22 分钟前
Makefile 完全学习笔记:从入门到通用模板解析
笔记·学习
yugi98783823 分钟前
基于最大信息熵的粒子群优化算法图像分割(MATLAB实现)
开发语言·算法·matlab