博客
关于我
类和对象的知识汇总
阅读量:458 次
发布时间:2019-03-06

本文共 942 字,大约阅读时间需要 3 分钟。

C++ 类与函数重载

函数重载

函数重载是C++中的一项重要特性,允许在同一个类中定义多个方法,虽然它们的名字相同,但参数类型和个数可以不同。这样的重载主要基于以下两点:

  • 参数类型不同:如void func(int a)void func(double a)
  • 参数个数不同:如void func()void func(int a)
  • 类定义

    在C++中,类是程序中最基本的构建单位。类的定义需要遵循以下规则:

  • 数据成员的初始化

    • 静态数据成员可以在类体中显式初始化。
    • 非静态数据成员不能在类体中显式初始化,必须通过构造函数进行初始化。
  • 成员可以是其他类的对象

    • 类成员可以引用另一个类的对象,称为类的组合。
    • 但不能将类自身作为成员,避免循环引用。
  • 成员函数

    成员函数是类的一部分,用于操作类的内部状态。构造函数是最重要的成员函数,用于创建对象的过程。以下是构造函数的使用方法:

  • 对象声明

    类名 对象名[参数列表];
    类名 *指针变量 = new 类名[参数列表];
  • 构造函数的初始化

    构造函数可以通过函数体或初始化列表来初始化数据成员。以下是两种初始化方式:

    • 函数体初始化

      funname(参数列表) { 
      // 初始化逻辑
      }
    • 初始化列表

      funname(参数列表): 成员名1(形参名1),成员名2(形参名2),... {
      // 函数体,可以是空函数体
      }

      初始化列表的形式为:成员名1(形参名1),成员名2(形参名2),...

  • 必须使用初始化列表的情况

    • 数据成员为常量或引用类型时。
    • 数据成员为没有无参构造函数的类的对象时。
  • 析构函数

    析构函数是用于回收类对象的函数,自动被调用(隐式调用)。其特点如下:

    • 没有返回值。
    • 不能有参数。
    • 不能被重载。
    • 类外实现。

    析构函数的定义格式如下:

    class MyClass {
    public:
    ~MyClass() {
    // 析构函数体
    }
    };

    总结

    函数重载和类的定义是C++编程的核心概念。通过合理使用函数重载,可以让类的方法更加灵活。类的定义需要遵守数据成员的初始化规则,以及成员函数的编写规范。构造函数和析构函数的正确使用,能够确保类对象的创建和释放流程的正确性。

    转载地址:http://smqfz.baihongyu.com/

    你可能感兴趣的文章
    OpenCV(1)读写图像
    查看>>
    OpenCV:概念、历史、应用场景示例、核心模块、安装配置
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
    查看>>
    OpenLDAP(2.4.3x)服务器搭建及配置说明
    查看>>
    OpenLDAP编译安装及配置
    查看>>
    OpenMCU(一):STM32F407 FreeRTOS移植
    查看>>
    OpenMCU(三):STM32F103 FreeRTOS移植
    查看>>
    OpenMCU(二):GD32E23xx FreeRTOS移植
    查看>>
    OpenMMLab | S4模型详解:应对长序列建模的有效方法
    查看>>
    OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
    查看>>
    OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
    查看>>
    OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    OpenObserve云原生可观测平台本地Docker部署与远程访问实战教程
    查看>>
    OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
    查看>>