一文带你学习一下C++中的构造函数

 更新时间:2023年05月08日 09:24:19   作者:码出世界的淡水鱼  
构造函数是一种特殊的函数,它用于在创建对象时初始化对象的值。在本文中,我们将学习C++的构造函数以及如何使用它们来创建对象,希望对大家有所帮助

C++构造函数学习

构造函数是一种特殊的函数,它用于在创建对象时初始化对象的值。所有的类都有构造函数,但如果没有自定义,则会使用默认构造函数。在本文中,我们将学习C++的构造函数以及如何使用它们来创建对象。

构造函数的基本语法是在声明类时定义,语法如下:

class MyClass{
    public:
        MyClass(); //构造函数的声明

    private:
        // 成员变量声明
};

MyClass::MyClass(){
    // 构造函数的具体实现
}

MyClass()是构造函数的名称,它与类名相同且没有返回类型。构造函数的主体用大括号包括,并进行初始化或其它操作。

默认构造函数是一种不带任何参数的构造函数,如果没有定义任何构造函数,则编译器将使用默认构造函数。例如:

class MyClass{
    public:
        // 默认构造函数
    private:
        // 成员变量声明
};

MyClass::MyClass(){
    // 参数为空
}

下面介绍一些常见的构造函数用法。

1.带参数的构造函数

带参数的构造函数允许在实例化对象时传递参数。例如,下面的代码演示了如何使用带参数的构造函数来初始化姓名和年龄:

#include <iostream>
using namespace std;

class Person{
    public:
        string name;
        int age;
        Person(string _name, int _age) {
            name = _name;
            age = _age;
        }
};

int main() {
    Person p1("john", 18);
    cout << "name: " << p1.name << endl;
    cout << "age: " << p1.age << endl;

    return 0;
}

2.多个构造函数

一个类可以有多个构造函数,每个构造函数可以有不同的参数列表。例如,以下代码演示了一个包含两个构造函数的类:

#include <iostream>
using namespace std;

class Person{
    public:
        string name;
        int age;
        Person(string _name, int _age) {
            name = _name;
            age = _age;
        }
        Person() {
            name = "unknow";
            age = 0;
        }
};

int main() {
    Person p1("john", 18);
    cout << "name: " << p1.name << endl;
    cout << "age: " << p1.age << endl;

    Person p2;
    cout << "name: " << p2.name << endl;
    cout << "age: " << p2.age << endl;

    return 0;
}

3.拷贝构造函数

拷贝构造函数是带有单个参数的构造函数,它接受同一类型的对象作为输入,并初始化一个新的对象。例如,以下代码演示了一个包含拷贝构造函数的类:

#include <iostream>
using namespace std;

class Person{
    public:
        string name;
        int age;
        Person() {
            name = "unknow";
            age = 0;
        }
        Person(const Person &p) {
            name = p.name;
            age = p.age;
        }
};

int main() {
    Person p1("john", 18);
    Person p2(p1);
    cout << "name: " << p2.name << endl;
    cout << "age: " << p2.age << endl;

    return 0;
}

以上就是一文带你学习一下C++中的构造函数的详细内容,更多关于C++构造函数的资料请关注脚本之家其它相关文章!

相关文章

  • C语言数据结构图的创建与遍历实验示例

    C语言数据结构图的创建与遍历实验示例

    这篇文章主要为大家介绍了C语言数据结构图的创建与遍历实验示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 利用Matlab绘制一款专属进度条

    利用Matlab绘制一款专属进度条

    MATLAB自带的进度条是很简单的,这样的进度条显得冷冰冰的。因此,本文将用Matlab来DIY一款专属的进度条,感兴趣的小伙伴可以了解一下
    2022-02-02
  • VSCode Linux的C++代码格式化配置的实现

    VSCode Linux的C++代码格式化配置的实现

    动格式化代码容易出现错误,特别是当代码量较大时,使用自动格式化可以减少这种错误的风险,本文主要介绍了VSCode Linux的C++代码格式化配置的实现,感兴趣的可以了解一下
    2023-10-10
  • C++实现LeetCode(21.混合插入有序链表)

    C++实现LeetCode(21.混合插入有序链表)

    这篇文章主要介绍了C++实现LeetCode(21.混合插入有序链表),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++17中std::string_view的使用

    C++17中std::string_view的使用

    std::string_view是C++17标准库中的一种新类型,它提供了对一个字符序列的非拥有式视图,本文主要介绍了C++17中std::string_view的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C语言用指针函数寻找数组中的最大值与次大值

    C语言用指针函数寻找数组中的最大值与次大值

    这篇文章主要给大家介绍了关于C语言用指针函数寻找数组中的最大值与次大值的相关资料,该代码通过定义一个名为LargestTow的函数来找出数组中的最大值和次大值,并将结果分别存入指针所指向的内存单元中,需要的朋友可以参考下
    2024-11-11
  • c++临时对象导致的生命周期问题

    c++临时对象导致的生命周期问题

    对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题,这篇文章主要介绍了c++临时对象导致的生命周期问题 ,需要的朋友可以参考下
    2024-07-07
  • Qt实现SqlTableModel映射组件应用小结

    Qt实现SqlTableModel映射组件应用小结

    在Qt中提供了QSqlTableModel模型类,它为开发者提供了一种直观的方式来与数据库表格进行交互,本文就来介绍一下Qt实现SqlTableModel映射组件应用小结,感兴趣的可以了解一下
    2023-12-12
  • C语言函数超详细讲解下篇

    C语言函数超详细讲解下篇

    函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数,函数我们分两篇来讲解,接下来开始第二篇
    2022-04-04
  • C++中访问权限的示例详解

    C++中访问权限的示例详解

    C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限(也称为可见性),下面这篇文章主要给大家介绍了关于C++中访问权限的相关资料,需要的朋友可以参考下
    2021-07-07

最新评论