首页 > 编程语言 >【C++】构造函数类别

【C++】构造函数类别

时间:2024-08-08 23:50:13浏览次数:15  
标签:初始化 调用 int C++ 参数 Constructor 类别 构造函数

1、默认构造函数

形式:没有入参

调用方式:直接定义

声明:
Constructor();

调用:
Constructor c;

2、初始化构造函数

形式:有参数列表

调用方式:传参即可

声明:
Constructor(int a, int b);

调用:
Constructor c(1,2);

3、拷贝构造函数

形式:参数为变量常引用

调用方式:当使用现有对象初始化新对象时,拷贝构造函数被调用,可以理解为是一个特殊的转换构造函数,函数传参、赋值时会被隐式调用。

声明
Constructor(const Constructor& c);

调用:
Constructor c1 = c;
f(c);

4、移动构造函数

形式:参数为右值引用

调用方式:当使用右值初始化的时候,就是使用移动构造函数。

声明:
Constructor(Constructor&& c);

调用:
Constructor c(move(Constructor()));

5、委托构造函数

形式:初始化列表式其他构造函数

调用方式:正常调用即可

定义:
Constructor c(int a, int b): Construtor() {}

6、转换构造函数

形式:参数列表有且仅有一个参数,拷贝构造函数和移动构造函数都是特殊的转换构造函数

调用方式:用其他变量初始化时

声明:
Constructor(int a);

调用:
Constructor b = 3;

标签:初始化,调用,int,C++,参数,Constructor,类别,构造函数
From: https://www.cnblogs.com/servlet-context/p/18349966

相关文章

  • C++标准模板库(STL)|容器|vector| queue|
    对STL进行总结,STL是standardtemplatelibrary的简写,是C++中的一个标准模板库,用于实现常用的数据结构和算法,它是C++程序员经常使用的一个工具箱。STL的主要目的是提高开发效率和代码质量,使得程序员可以更加便捷地完成常见的操作。里面包括:算法(algorithm)、容器(container)、仿函......
  • C++ Rect And Point Search Algorithm
    测试 ////Createdbywwwon2024/8/8.//#include"include/cxstructs.h"#include"include/cxml/k-NN.h"//可扩展Rect内搜索子Rect或PointvoidtestRectSearch(){usingnamespacecxstructs;std::random_devicerd;std::mt19937gen(rd()......
  • Linux C++ 开发2 - 编写、编译、执行第一个程序
    上一篇《LinuxC++开发1-搭建C++开发环境》我们搭建好了C++的开发环境,本篇我们将编写、编译、执行第一个程序。1.第一个C++程序1.1.demo01.cpp这里写一个最简单的HelloWord程序#include<iostream>intmain(){std::cout<<"Hello,world!"<<std::endl;re......
  • C++ 根据层序遍历数组 构造二叉树
    说明该层序遍历数组中空节点会使用-1代替,即该层序遍历数组可以理解为一个完全二叉树代码利用队列实现左右子节点的存储,每次通过获取队列头部元素即为当前头节点,然后在数组中i和i+1对应该头结点下的左右子节点,如果不为-1,那么说明可以入队。structTreeNode{intval;Tree......
  • C++进制转换
    这篇代码是我早就打出来的,当时放在百度网盘,本地放在硬盘上,后来硬盘坏了,最近清网盘的时候才想起来,所以赶紧改了改就发出来了这也是我比较早的代码了,所以记得并不清楚,改也只改了一点,当时不爱打注释,具体思路也忘得一干二净,所以直接把代码贴出来了(好像屁话有点多)Code:#include......
  • 实时人脸换脸——基于C++与Onnxruntime调用GPU实现实时换脸
    1、概述1.1算法概述人脸换脸是一种使用人工智能技术来实时或离线地将视频中的人脸替换成另一张人脸的技术。近年来,随着深度学习技术的发展,这一领域取得了显著进展。常见的人脸换脸项目有:Deepfake:这是最著名的换脸算法之一,使用深度学习技术合成人脸图像,通常使用卷积神......
  • Depth Anything强大的单目深度估计Python与C++模型部署
    引言最近看到一个叫DepthAnything单目深度估计模型火了,于是抽空把代码和模型下载下来体验了一下,发现确实是很强大。论文链接:https://arxiv.org/pdf/2401.10891.pdf代码链接:https://github.com/LiheYoung/Depth-Anything项目主页:https://depth-anything.github.io/本......
  • C++ - 二级指针动态内存申请与释放
    C语言描述:#include"stdio.h"#include"stdlib.h"#include"assert.h"//二维数组内存申请int**createArray2D(introw,intclos){ int**pArray=(int**)malloc(sizeof(int*)*row); assert(pArray); for(inti=0;i<row;i++) { ......
  • 一文搞懂C/C++常用编译器
    1.C++编译器介绍1.1.MSVC1.1.1.VisualC++与VisualStudio的版本对应关系1.1.2.工具链的主要工具1.2.GCC1.2.1.GCC的主要优点1.2.2.GCC的常用工具1.2.3.MinGW1.3.Clang/LLVM1.3.1.Clang介绍1.3.2.Clang与LLVM的关系1.3.3.Clang/LLVM与GCC2.......
  • C++ char*类型与vector类型的相互转换
    char*类型与vector<char>类型的相互转换很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成动态字符串,同时,也需要二者类型的相互转换:char*转vector<char> vector<char>buffer(ch,ch+4);vector<cha......