| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:类/结构体成员变量初始化用大括号还是小括号,二者有什么区别?
取消只看楼主 加入收藏
wolfcan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2021-12-9
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:2 
类/结构体成员变量初始化用大括号还是小括号,二者有什么区别?
本人菜鸡,也是第一次来咱们论坛。现在边看别人代码,边学习c++,现在看到一些问题很疑惑,特来请教各位,在此非常感谢。
关于类成员变量或结构体成员变量的初始化问题,我看到别人代码如下。
第一部分是别人定义的结构体中的代码,第二部分是类构造函数的部分代码。我有两个疑问,第一,有些成员变量为什么不直接用等号赋值呢?而是只写一个初始值呢?比如第一部分加粗代码。第二,成员变量的初始化到底是用大括号还是小括号呢?第一部分结构体中基本用的大括号。而第二部分类构造函数的初始化列表中有的有大括号,有的用小括号,应该怎么区分呢?二者有什么区别吗?非常感谢。
第一部分:
程序代码:
 struct GlobalConfiguration {
        // The overall size of the volume (in mm). Will be allocated on the GPU and is thus limited by the amount of
        // storage you have available. Dimensions are (x, y, z).
        // 其实也是核函数的数目, 这里的make_int3是CUDA中的核函数的大小
        int3 volume_size { make_int3(512, 512, 512) };

        // The amount of mm one single voxel will represent in each dimension. Controls the resolution of the volume.
        float voxel_scale { 2.f };

        // Parameters for the Bilateral Filter, applied to incoming depth frames.
        // Directly passed to cv::cuda::bilateralFilter(...); for further information, have a look at the opencv docs.
        int bfilter_kernel_size { 5 };
        float bfilter_color_sigma { 1.f };
        float bfilter_spatial_sigma { 1.f };


第二部分:
程序代码:
Pipeline::Pipeline(const CameraParameters _camera_parameters,
                       const GlobalConfiguration _configuration) :
            //  生成参数对象                                                         
            camera_parameters(_camera_parameters), configuration(_configuration),
            // 设置volume
            volume(_configuration.volume_size, _configuration.voxel_scale),
            // 设置模型数据(自己-这是某一帧的数据)
            model_data(_configuration.num_levels, _camera_parameters),
            // 初始化数据: 清空位姿,轨迹等
            current_pose{}, poses{}, frame_id{0}, last_model_frame{}
{***************************************************************}

搜索更多相关主题的帖子: 初始化 成员 括号 变量 The 
2021-12-09 22:19
wolfcan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 2楼 rjsp
非常感谢版主的回复以及批评建议。因为我初学c++,积累还比较少,有些问题我自己能用代码验证的就验证了,还有一些不知道怎么验证,网上也搜不到想要的结果,我又急需用此语言出一些成果,所以就直接网上发帖了,请各位大佬海涵。
今天我根据版主的提示搜索了相关资料(之前都不知道搜索哪些关键词比较好),了解了一些关于圆括号和大括号的使用场景,看了一天的博客,但实话讲还是有点晕,其中对您说的两句话还不是很理解:
第一句“为了区分列表初始化和直接初始化,需要用大括号”。
首先,我对直接初始化就看的就很糊涂,网上有人说:能直接调用类的构造函数或拷贝构造函数就能完成初始化的就是直接初始化。但我发现也有其他初始化方法会调用构造函数或拷贝构造函数。
第二句,“自定义类型可能需要多个初始化参数,所以需要(...);”
完全体会不到这句话的含义,为什么多个初始化参数就需要(),我现在感觉用{}进行初始化更为方便和安全。
再次感谢。
2021-12-11 20:27
wolfcan
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2021-12-9
收藏
得分:0 
回复 4楼 rjsp
谢谢
2021-12-12 19:33
快速回复:类/结构体成员变量初始化用大括号还是小括号,二者有什么区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018089 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved