C++中构造函数的参数缺省的详解

C++中构造函数的参数缺省的详解

在C++中,我们可以为构造函数设置参数缺省值,使得在实例化对象时可以省略某些参数,也可以在某些场合给构造函数更灵活的设置。

构造函数参数缺省的语法格式

为构造函数设置参数缺省值的语法格式如下:

class 类名{
public:
    类名(参数列表 = 缺省值);
    ...
};

构造函数的参数列表可以设置一个或多个缺省值,缺省值也可以设置在一个或多个参数上。

构造函数的参数缺省的用法

示例 1

下面的代码展示了一个有参数缺省值的构造函数的用法。

#include <iostream>
using namespace std;

// 定义一个person类
class person{
public:
    person(string n = "noname", int a = 0){
        name = n;
        age = a;
    }
    // 声明类的公有方法
    void say(){
        cout << "my name is " << name << ", and I'm " << age << " years old." << endl; 
    }
private:  // 定义类的私有成员
    string name;
    int age;
};

int main(){
    // 使用默认参数构造实例对象
    person p1;
    p1.say();
    // 使用部分参数构造实例对象
    person p2("John");
    p2.say();
    // 构造多个实例
    person p3("Tom", 18);
    p3.say();
    person p4("Alice", 22);
    p4.say();
    return 0;
}

输出结果:

my name is noname, and I'm 0 years old.     // p1使用默认参数构造
my name is John, and I'm 0 years old.        // p2使用第一个参数缺省,从而实例化为John,年龄为0
my name is Tom, and I'm 18 years old.
my name is Alice, and I'm 22 years old.

示例 2

下面的代码展示了多个参数的缺省值的构造函数的用法。

#include <iostream>
using namespace std;

// 定义一个汽车类
class car{
public:
    car(string b = "brand", string c = "color", int p = 0){
        brand = b;
        color = c;
        price = p;
    }
    // 声明类的公有方法
    void info(){
        cout << "brand: " << brand << ", color: " << color << ", price: " << price << " dollars" <<  endl; 
    }
private:  // 定义类的私有成员
    string brand;
    string color;
    int price;
};

int main(){
    // 使用默认参数构造实例对象
    car c1;
    c1.info();
    // 使用部分参数构造实例对象
    car c2("Tesla");
    c2.info();
    // 构造多个实例
    car c3("BMW", "black");
    c3.info();
    car c4("Audi", "red", 20000);
    c4.info();
    return 0;
}

输出结果:

brand: brand, color: color, price: 0 dollars       // c1使用默认参数构造
brand: Tesla, color: color, price: 0 dollars       // c2使用第一个参数缺省,从而实例化为Tesla,颜色为默认值,价格为0
brand: BMW, color: black, price: 0 dollars
brand: Audi, color: red, price: 20000 dollars

总结

使用C++中的构造函数参数缺省值可以使得构造函数在实例化对象时更加灵活和方便,并可以省略某些参数的赋值过程,提高代码的可读性和代码重用性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中构造函数的参数缺省的详解 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • iOS12 beta2怎么升级 苹果ios12开发者预览版beta2更新升级图文教程

    iOS12 beta2怎么升级 苹果ios12开发者预览版beta2更新升级图文教程 前言 苹果在 WWDC 2018 上发布了最新的 iOS 12 系统,并随之推出了开发者预览版 beta1。现在,苹果已经正式发布了开发者预览版 beta2,并且相信很多开发者和比较关注苹果系统的用户都非常想要体验新版系统所带来的新功能和优化。那么,本篇文章将为大家详细讲解…

    other 2023年6月26日
    00
  • 使用sevenzipsharp压缩/解压7z格式

    以下是使用SevenZipSharp压缩/解压7z格式的完整攻略,包含两个示例说明: 步骤1:安装SevenZipSharp 首先,需要安装SevenZipSharp。可以使用NuGet包管理器安装SevenZipSharp。以下是安装步骤: 打开Visual Studio。 在解决方案资源管理器中,右键单击项目,然后选择“NuGet程序包”。 在NuGet…

    other 2023年5月9日
    00
  • window开启remotedesktop服务

    以下是详细讲解“Windows开启Remote Desktop服务的完整攻略”,过程中至少包含两条示例说明的标准Markdown格式文本: Windows开启Remote Desktop服务完整攻略 Remote Desktop服务是Windows操作系统自带的远程桌面服务,可以让用户通过网络远程连接到其他计算机。本文介绍如何在Windows操作系统中开启R…

    other 2023年5月10日
    00
  • Win11右键有几秒延迟怎么办 win11右键按键延迟的解决方法

    Win11右键有几秒延迟怎么办 如果在Win11中使用鼠标右键时出现了明显的延迟,会非常影响使用体验。下面针对这个问题提供一些可能的解决方案。 1. 更新显卡驱动程序 有时候延迟出现的原因是显卡驱动程序过时。获取最新的显卡驱动程序可帮助解决该问题。 打开设备管理器:在“开始”菜单中搜索“设备管理器”,单击“设备管理器”以打开它。 展开“显示适配器”节点。 右…

    other 2023年6月27日
    00
  • PHP框架laravel的.env文件配置教程

    下面是关于PHP框架laravel的.env文件配置教程的完整攻略,主要包括.env文件的作用、.env文件的配置方法和相关示例说明: .env文件的作用 .env文件是laravel框架中的一个配置文件,用于存储应用程序的环境变量,比如数据库连接信息、API密钥、邮件服务信息等。这些环境变量可以在应用程序中通过env()函数读取和使用。通过使用.env文件…

    other 2023年6月25日
    00
  • C++ 实现高性能HTTP客户端

    C++ 实现高性能HTTP客户端攻略 1. 确定需要使用的库 为了实现一个高性能的HTTP客户端,需要选择一个高效的HTTP库。常用的HTTP库有: libcurl:在性能方面表现极佳,支持多种协议。使用C语言编写,提供了C++接口。 Boost.Beast:使用Boost库实现的HTTP客户端库,基于 Boost.Asio,使用C++编写。性能好,易于使用…

    other 2023年6月25日
    00
  • iOS支付宝使用方法详解

    iOS支付宝使用方法详解 1. 下载安装支付宝APP 在App Store中搜索“支付宝”,下载安装最新版本的支付宝APP。 2. 注册或登录支付宝账号 使用手机号码进行注册,或者绑定已有的支付宝账号。如果已经有支付宝账号,可以直接登录即可。 3. 添加支付方式 在支付宝APP中,点击“我的”按钮,进入个人中心页面。在个人中心页面中,点击“支付管理” -&g…

    other 2023年6月26日
    00
  • Win7系统执行操作后桌面右键刷新反应慢的解决方法

    下面是详细讲解“Win7系统执行操作后桌面右键刷新反应慢的解决方法”的完整攻略。 问题描述 在使用Win7系统时,有时会遇到执行一些操作后,桌面右键刷新反应慢的情况。这种情况下,右键菜单弹出的速度会很慢,甚至会导致系统卡顿。如何解决这个问题呢?我们可以尝试以下几种方法。 解决方法一:关闭不必要的上下文菜单扩展 有时候,桌面的右键菜单会包含一些不必要的上下文菜…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部