一文带你学习一下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语言经典顺序表真题演练讲解

    程序中经常需要将一组数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化,顺序表则是将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示
    2022-04-04
  • 带你了解C++this指针的用法及其深究

    带你了解C++this指针的用法及其深究

    这篇文章主要介绍了C++中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • C++实现读写ini配置文件的示例代码

    C++实现读写ini配置文件的示例代码

    配置文件的读取是每个程序必备的功能,配置文件的格式多种多样,例如:ini格式、json格式、xml格式等。其中属ini格式最为简单,且应用广泛。本文和大家分享了C++读写ini配置文件的方法,需要的可以参考一下
    2023-05-05
  • 如何为Qt视图中的文字实现彩虹渐变效果

    如何为Qt视图中的文字实现彩虹渐变效果

    这篇文章主要给大家介绍了关于如何为Qt视图中的文字实现彩虹渐变效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Qt具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解C语言数据结构之栈

    详解C语言数据结构之栈

    这篇文章主要为大家介绍了C语言数据结构之栈,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C 语言基础教程(一)颜色加亮

    C 语言基础教程(一)颜色加亮

    C 语言基础教程(一)颜色加亮...
    2007-02-02
  • 利用C++实现⾃然连接操作算法

    利用C++实现⾃然连接操作算法

    这篇文章主要介绍了利用C++实现⾃然连接操作算法,文章围绕主题展开详细的内容介绍,具有一定参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Visual Studio 2022下载安装与使用超详细教程

    Visual Studio 2022下载安装与使用超详细教程

    这篇文章主要介绍了Visual Studio 2022最新版安装与使用教程,本文以社区版为例通过图文并茂的形式给大家介绍Visual Studio 2022安装使用,需要的朋友可以参考下
    2022-04-04
  • c++中的bind使用方法

    c++中的bind使用方法

    bind是这样一种机制,它可以预先把指定可调用实体的某些参数绑定到已有的变量,产生一个新的可调用实体,这种机制在回调函数的使用过程中也颇为有用。接下来通过本文给大家介绍c++中的bind使用方法,感兴趣的朋友一起看看吧
    2022-01-01
  • C++布隆过滤器的使用示例

    C++布隆过滤器的使用示例

    宁可错杀一千,也不放过一个,这是布隆过滤器的特点,本文主要介绍了C++布隆过滤器的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09

最新评论