【C++】构造函数

在Unity3d使用yolov8的onnx模型 输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。 阅读详情
构造函数体赋值

构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。
其特征如下:

  1. 函数名与类名相同。
  2. 无返回值。
  3. 对象实例化时编译器自动调用对应的构造函数。
  4. 构造函数可以重载。
class Date
{
    public:
    Date()//无参构造
    {}
    Date(int year,int month, int day) //带参构造
    {
        _year = year;
        _month = month;
        _day = day;
    }
    
    private:
    int _year;
    int _month;
    int _day;
};

如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦用户显式定义编译器将不再生成。
但是内置类型不会处理;
C++11 可以给对象带缺省值来处理:

class Date
{
    public:
    Date()
    {}
    Date(int year,int month, int day) 
    {
        _year = year;
        _month = month;
        _day = day;
    }
    
    private:
    int _year = 1;
    int _month = 1;
    int _day = 1;
};

无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个。

class Date
{
    public:
    Date()
    {
        _year = 1;
        _month = 1;
        _day = 1;
    }
    Date(int year = 2,int month = 2, int day = 2)
    {
        _year = year;
        _month = month;
        _day = day;
    }
    
    private:
    int _year ;
    int _month;
    int _day;
};

重点:C++把类型分成内置类型(基本类型)和自定义类型。编译器生成默认的构造函数会对自定类型成员调用的它的默认成员函数。

构造函数初始化列表

初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。

class Date
{
    public:
    Date(int year,int month, int day)
    :_year(year)
    ,_month(month)
    ,_day(day)
    {}    
    private:
    int _year;
    int _month;
    int _day;
};

每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次);
类中包含以下成员,必须放在初始化列表位置进行初始化:
引用成员变量,const成员变量,自定义类型成员(且该类没有默认构造函数时)

 A _aobj;  // 没有默认构造函数
 int& _ref;  // 引用
 const int _n; 

成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关

class A
{
public:
    A(int a)
       :_a1(a)
       ,_a2(_a1)
   {}
    
    void Print() {
        cout<<_a1<<" "<<_a2<<endl;
   }
private:
    int _a2;
    int _a1;
};
int main() {
    A aa(1);
    aa.Print();
}

结果: 1 随机值!

YOLO11改进|卷积篇|引入SPDConv YOLO11中添加SPDConv卷积 阅读详情

相关推荐

手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)

本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。

ooo22的博客 330

Cpp_构造函数

构造函数1)函数名与类名相同,且没有返回类型。 2)构造函数在对象被创建时自动被调用。 3)构造函数负责确定对象的初始状态以及分配必要的资源。 4)构造函数在每个对象的整个生命周期内,一定会被调用,且仅被调用一次对象的创建过程:A.首先为对象分配足量的内存空间;B.以构造实参调用构造函数,完成如下任务: a)依次调用各个基类的构造函数,初始化所有基类子对象; b)依次调用类类型成

Jerry的专栏 4931

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

m0_58098052的博客 1599

【cpp】构造函数

构造函数主要分为三类:默认构造函数(无参构造函数)、有参构造函数、拷贝构造函数(包括了拷贝赋值运算符,移动构造函数,移动赋值运算符)

qq_44784242的博客 1159

AVS3代码阅读HPM4.0

参考AVS3代码阅读(HPM6.0)(一.整体架构以及CU划分部分代码) 版本:HPM4.0 核心文件:app_encoder.c   要做的是帧间预测,所以前面的函数先暂时不管了,挖个坑以后再填。直接从enc_pic看起。 enc_pic()    ...

CRR的博客 3187

状态机与RTOS的融合实践:如何避免‘状态爆炸’并提升系统响应

本文探讨了状态机与RTOS的融合实践,重点介绍了如何通过层次化状态机、表驱动设计等策略避免状态爆炸问题,并优化任务调度与事件处理机制,从而显著提升嵌入式系统的响应速度和可靠性。

net55的博客 107

CPP之构造函数

C++中的构造函数可以分为4类:默认构造函数、初始化构造函数、拷贝构造函数、移动构造函数。 需要注意的是:仅当没有定义任何构造函数的时候,编译器才会提供默认的构造函数,为类定义了构造函数,程序员就必须为他提供默认构造函数。两种创建方式:1.给已有的构造函数所有参数提供默认值 2.定义一个没有参数的构造函数。 有了有参的构造函数,编译器就不提供默认的构造函数。 构造函数默认实现的是值拷贝(浅拷贝)。**用于将其它类型的的变量,隐式转换为本类对象。**下面的转换构造函数,将int类型的r转换为student类型

zhuxiaoqiang1hao的博客 1991

R 分析裂区试验设计

裂区试验有主区部分和副区部分, 因而有主区部分误差(误差 a,简记为Ea )和副区部分误差(误差b,简记为Eb) 分别用于测验主区处理以及副区处理和主、副互作的显著性。对同一个二因素试验资料作自由度和平方和的分解,则可发现随机区组的误差项自由度和平方和分别为DFe、SSe,而裂区设计有两个误差项,其自由度和平方和分别为DFEa,DFEb, SSEa, SSEb。而区组,处理效应等各个变异项目的自由

samhuairen的专栏 8934

【C++】构造函数详解

本篇博客主要介绍一下C++中的构造函数及拷贝构造函数的特性及用法,至于与这一部分有关的析构函数及运算符重载等内容就放在下次。构造函数是特殊的成员函数,构造函数千万不要认为它是用来创建对象的,其实构造函数的主要任务并不是开空间创建对象,而是初始化对象。关于构造函数,可以理解为使用类实例化对象时,每一个对象都要进行初始化,都要进行调用初始化函数,这个操作是实例化对象的必要操作,那么有没有更好的方式来简化这个调用操作。于是C++便推出了构造函数本篇博文对构造函数做了一个较为详细的介绍,不知道对你有没有帮助呢。

2301_77954967的博客 2377

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7813

华为OD机试双机位C卷-流浪地球(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【流浪地球】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,并提供在线OJ模拟做题。华为OD机试真题【流浪地球】。

qq_45776114的博客 3141

cpp——类——构造函数

概述 为了类的使用方便,类的设计尽可能使类的使用方式与内置类型无区别,构造函数则是类模仿内置类型的初始化 内置类型初始化支持直接初始化,复制初始化,默认初始化,构造函数对应于内置类型的各种初始化: 带参数构造函数——直接初始化 复制构造函数——复制初始化 默认构造函数——默认初始化 构造函数特点: 函数名与类名同名,用来标记和识别构造函数 没有返回值,构造函数是对自身的初始化,返回值无意义,因为没有返回值的接收者 初始化行为,构造函数在生成(定义)对象时自动调用,因此构造函数只能执行一次,否则就多次初始化

mardax的专栏 3519

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 931

70、Cpp23关于各种构造函数的生成

70、Cpp23关于各种构造函数的生成

m0_63008237的博客 1171

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CPP-基础:C++拷贝构造函数详解

一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: 1 int a = 100; 2 int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 1 #include <iostream> 2 using namespac...

dixiongbi7761的博客 147

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++类的构造函数

详细讲解C++类中的构造函数,包含各种细节,一次讲明白!

长岛冰茶去冰的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C++构造函数

1 构造函数的定义及特征 构造函数是类的一种特殊成员函数,其主要作用是对类的成员进行初始化,保证每个类成员都有一个合适的初始值。 构造函数有以下特征: 函数名与类名一致 没有返回值 对象实例化时自动调用对应的构造函数 支持函数重载 构造函数语法:类名(){} 需要注意的是, 没有返回值和返回值为空是两码事。返回值为空指的是该函数有返回值,其中返回值为void类型。而支持重载则说明,在一个类中,可以同时存在多个构造函数。 在代码段1中,People类提供了两个构造函数,其中第一个是无参构造函数,第二个是有

乌有先生ii的博客 8279

关于C++中构造函数的讨论

关于C++中几种构造函数的讨论

mo_xiao_yang的博客 1776

C++中default标识的构造函数的说明

C++中default标识的构造函数的说明如下: 一般地,default标识的构造函数放在.h文件中,cpp文件不需要再写构造函数定义了,否则会编译会报错,提示:函数已有主体。而没有default标识的默认构造函数,就需要在实现默认构造函数的实现,即使这个默认构造函数什么都不干,也要实现,否则在定义该类的无参数对象时,会报找不到默认构造函数而报链接错误。如下: // .h文件 class CTopWndInfo { public: CTopWndInfo() = default; ...

danshiming的博客 3692

入门cpp之构造函数和析构函数

int _month;int _day;对于上面这个类,我们每次创建一个Date类型的变量,都需要调用Init函数去初始化,难免会有忘记初始的时候。cpp中有构造函数可以在变量创建时,自动将信息设置进去,这就是构造函数。构造函数是一个特殊的成员函数,名字与类名相同创建类类型对象时由编译器自动调用,以保证每个数据成员都有一个合适的初始值,并且在对象整个生命周期内只调用一次。

zyzyzy_mhmhmh的博客 832

c++ 构造函数析构函数 数据安全_当cpp联合体遇到类的构造函数

在学习Qt的QVariant时,Qt Create的说明手册中说道:Because C++ forbids unions from including types that have non-default constructors or destructors, most interesting Qt classes cannot be used in unions. 大概意思是:因为c++禁止...

weixin_30558657的博客 188

C++ 构造函数

本文系统介绍了C++中各类构造函数的特点与用法。主要内容包括:默认构造函数(无参)、带参构造函数(支持重载和初始化列表)、拷贝构造函数(处理对象复制)、移动构造函数(C++11引入,优化资源转移)、委托构造函数(减少代码重复)以及显式构造函数(防止隐式转换)

平平无奇的小甜菜 1380

cpp——类——explicit构造函数

概述 explicit只能修饰构造函数,构造函数默认implicit,implicit不是keyword implicit构造函数:可用于直接初始化,也可用于复制初始化 explicit构造函数:可用于直接初始化,不可用于复制初始化 implicit class CAnimal { public: CAnimal(int group) : mGroup(group) { cout << "CAnimal(" << group << ")" << endl; }

mardax的专栏 645

CPP-PYTHON_CPP构造函数和PYTHON init对比

CPP-PYTHON_CPP构造函数和PYTHON init对比

2401_85199775的博客 1293

C++的6种构造函数

C++的构造函数总结

weixin_45186425的博客 4487

C/Cpp / 构造函数种类

2018-03-15 创建人:Ruo_Xiao 开发环境:VS2010 邮箱:xclsoftware@163.com 2018-04-16 修改人:Ruo_Xiao 添加对类型转换构造函数隐式转换的抑制使用的说明,即:explicit。 2019-06-19 修改人:Ruo_Xiao 修正对转换构造函数的说明。 一、默认构造函数(无参数构造函数) Father() { s...

布袋和尚 445
上一篇: 【C++ 内联函数】
下一篇: 【C++】类和对象
sid_Tang
博客等级 码龄4年 115粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值