C++类和对象基础详解

C++类和对象基础详解

什么是类和对象

C++中类指的是一种自定义的数据类型,可以包含数据(成员变量)以及方法(成员函数)。对象则是根据类定义的实例。类和对象是面向对象编程的核心概念。

如何定义类

定义类的基本语法如下:

class 类名 {
  public:    //访问限定符
    成员变量(属性)
    成员函数(方法)
};

其中,访问限定符有三种:public、protected、private,代表成员变量和成员函数的访问权限。

示例代码如下:

class Person {
  public:
    string name;    //此处使用了C++的string类
    int age;
    void sayHello() {
        cout << "Hello, my name is " << name << ". I'm " << age << " years old." << endl;
    }
};   //注意要以分号结尾

上述代码定义了一个名为Person的类,包含了name和age两个成员变量,以及一个成员函数sayHello。

如何创建对象

创建对象的语法为:

类名 对象名;

示例代码如下:

Person person1;   //创建了一个Person类的对象,名为person1

对象创建后,可以通过“.”访问其中的成员变量和成员函数。示例代码如下:

person1.name = "Tom";
person1.age = 22;
person1.sayHello();    //输出 "Hello, my name is Tom. I'm 22 years old."

类的构造函数和析构函数

类中还可以定义构造函数和析构函数,用于初始化和销毁对象时执行相应的操作。构造函数和析构函数分别以类名开头、以~符号和类名开头命名。

示例代码如下:

class Person {
  public:
    string name;
    int age;
    Person() {    //构造函数
        cout << "A new person is created." << endl;
    }
    ~Person() {    //析构函数
        cout << "A person is destroyed." << endl;
    }
    void sayHello() {
        cout << "Hello, my name is " << name << ". I'm " << age << " years old." << endl;
    }
};

示例说明

示例1:

#include <iostream>
using namespace std;

class Rectangle {
  public:
    int width;
    int height;
    Rectangle(int w, int h) {   //构造函数
        width = w;
        height = h;
        cout << "A rectangle is created." << endl;
    }
    ~Rectangle() {   //析构函数
        cout << "A rectangle is destroyed." << endl;
    }
    int getArea() {
        return width * height;
    }
};

int main() {
  Rectangle rect1(4, 5);
  cout << "The area of rect1 is: " << rect1.getArea() << endl;

  Rectangle rect2(3, 6);
  cout << "The area of rect2 is: " << rect2.getArea() << endl;

  return 0;
}

上述代码定义了一个Rectangle类,包含width、height两个成员变量以及getArea方法。在main函数中创建了两个Rectangle对象,分别计算了其面积并输出。注意,每次创建和销毁对象时会分别调用构造函数和析构函数。

示例2:

#include <iostream>
using namespace std;

class Date {
  public:
    int year;
    int month;
    int day;
    Date(int y, int m, int d) {   //构造函数
        year = y;
        month = m;
        day = d;
    }
    bool isEqual(Date date) {
        if (year == date.year && month == date.month && day == date.day) {
            return true;
        }
        else {
            return false;
        }
    }
};

int main() {
  Date date1(2022, 8, 5);
  Date date2(2022, 8, 5);
  if (date1.isEqual(date2)) {
      cout << "date1 and date2 are equal." << endl;
  }
  else {
      cout << "date1 and date2 are not equal." << endl;
  }

  Date date3(2021, 8, 5);
  if (date1.isEqual(date3)) {
      cout << "date1 and date3 are equal." << endl;
  }
  else {
      cout << "date1 and date3 are not equal." << endl;
  }

  return 0;
}

上述代码定义了一个Date类,包含year、month、day三个成员变量,以及isEqual方法。在main函数中创建了三个Date对象,分别比较它们是否相等。注意,isEqual方法的参数是一个Date对象,即通过对象进行传递。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++类和对象基础详解 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 纯c语言实现面向对象分析与示例分享

    下面我将详细讲解“纯c语言实现面向对象分析与示例分享”的完整攻略。 1. 面向对象编程概述 1.1 什么是面向对象编程 面向对象编程(Object Oriented Programming,简称OOP)是一种编程模式,它通过把现实世界中的事物抽象为一系列的类(Class),并在类之间建立关系(如继承、聚合、组合等),来实现程序的编写和设计。 1.2 面向对象…

    C 2023年5月22日
    00
  • 一文详解Qt中的对象树机制

    一文详解Qt中的对象树机制 什么是对象树机制? 在 Qt 中,每一个对象都有其父对象,这些对象之间形成了一种树形结构,我们称之为 对象树。当一个对象被创建时,可以设置它的父对象,然后它就会成为父对象的子对象,加入到对象树中。 Qt 中的对象树机制,可以实现对象之间的自动管理,并沿着树形结构进行自动的构建、销毁和内存管理。 对象树的作用 对象树机制的主要作用:…

    C 2023年5月22日
    00
  • C程序 查找矩阵定数

    C程序 查找矩阵定数完整使用攻略 介绍 这个程序可以在一个已知的矩阵中查找某个固定的数字。具体的实现方法是通过循环遍历矩阵中的每个元素,并将每个元素和固定数字进行比较,直到找到匹配的元素或遍历完整个矩阵。 用法 1.首先,在你的环境中下载并安装C编译器工具,例如GCC或者CLang。 2.下载本程序的源代码,打开命令行工具,并用C编译器来编译程序。 gcc …

    C 2023年5月9日
    00
  • 逍遥自在学C语言 | 赋值运算符

    前言 在C语言中,赋值运算符用于将一个值赋给变量 这个过程分为两个步骤: 计算赋值运算符右侧的表达式 将结果赋给左侧的变量。 C语言提供了多个不同的赋值运算符,包括基本的赋值运算符、复合赋值运算符以及条件赋值运算符等 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、基本…

    C 2023年4月25日
    00
  • Java 常量池详解之字符串常量池实现代码

    下面是“Java 常量池详解之字符串常量池实现代码”的完整攻略。 什么是常量池? Java 中的常量池(Constant Pool)是指类和接口中所使用的常量的集合。其中包括了基本数据类型(如 byte、short、int、long、float、double、char、boolean)、字符串以及对其他类型(如 Class 对象和方法句柄)的引用。 什么是字…

    C 2023年5月23日
    00
  • C++设计模式之单例模式详解

    下面是详细讲解“C++设计模式之单例模式详解”的完整攻略。 什么是单例模式? 单例模式是一种创建型设计模式,用于确保类只有一个实例,并提供全局访问点。 为什么使用单例模式? 在某些情况下,我们需要确保在整个应用程序中只有一个实例化对象。单例模式使我们能够确保这一点。此外,单例模式还可以提供全局访问点,以便在应用程序中的任何地方都可以轻松访问单例对象。 实现单…

    C 2023年5月22日
    00
  • 全面了解javascript中的错误处理机制

    全面了解JavaScript中的错误处理机制 JavaScript中的错误处理机制是非常重要的,它可以帮助我们更好地理解代码中可能出现的错误,并且在必要的时候能够处理这些错误。在本文中,我们将介绍JavaScript中的错误类型、错误处理机制以及如何处理它们。 JavaScript中的错误类型 JavaScript中有几种不同类型的错误,我们来一一介绍: 语…

    C 2023年5月23日
    00
  • OpenCV mask的作用及如何制作掩模mask

    OpenCV的mask是一个二进制图像,用于控制对另一个图像的操作。在图像处理中,掩模通常被用于选择感兴趣区域(ROI)或执行像素级别的操作,如图像增强、滤波、混合等。 制作掩模实际上就是创建一个二值图像,其中像素值为0或255(黑或白),作用是将掩模图像中为255的像素区域与原图像中对应位置的像素进行操作,在区域内进行所需的图像处理操作。 下面我们以制作掩…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部