首页 > 编程语言 >C++ 列表初始化 {}

C++ 列表初始化 {}

时间:2024-09-22 23:26:59浏览次数:7  
标签:初始化 int age dog Dog C++ 列表

花括号的形式{},进行列表初始化,在C++11中初始化变量到了全面的应用。

可参看《C++ Primer》 P39 P76 P88 等相关内容信息。

Note:

当我们提供一个类内初始值时,必须以符号=或者花括号表示。《C++ Primer》 P246

如下:


class Dog
{
public:
    Dog(int age) :m_age(age)
    {}
    int getAge()
    {
        return m_age;
    }
private:
    int m_age;
};

class Tiger
{
public:
    Tiger() {}
    void showDogInfo()
    {
        cout << "我的午餐年龄:" << '\n';
        cout << m_dog.getAge() << '\n';
        cout << m_dog_1.getAge() << '\n';
    }
private:
    Dog m_dog = Dog(100);
    Dog m_dog_1{ 200 };
    // Dog m_dog_2(300); // 这样不行
};

int main()
{
    Tiger tiger;
    tiger.showDogInfo();

    system("pause");
    return EXIT_SUCCESS;
}

输出:

我的午餐年龄:
100
200

类内初始化只能如下用,={}初始化。

private:
    Dog m_dog = Dog(100);
    Dog m_dog_1{ 200 };
    // Dog m_dog_2(300); // 这样不行

标签:初始化,int,age,dog,Dog,C++,列表
From: https://www.cnblogs.com/huvjie/p/18426079

相关文章

  • HTML中的列表、表格、媒体元素和内联框架
    HTML中的列表、表格、媒体元素和内联框架本章目标会使用有序列表、无序列表和定义列表实现数据展示(重点)会使用表格实现数据会使用媒体元素在网页中播放视频(重点)会使用html5结构元素进行网页布局(重点)一、列表1.无序列表ul:unorderedlist快捷键:ul>li*5>aul>li>img+p......
  • c++中内置函数
    intmain(){autofactorial=[&](intn,auto&&self)->int{if(n<=1)return1;returnn*self(n-1,self);//调用自己};std::cout<<"Factorialof5:"<<factorial(5,factorial)......
  • Ubuntu24.04安装及初始化配置
    一、系统简介Ubuntu基于debian以桌面应用为主的开源操作系统,长期支持版本LTS通常每两年发布一次,如最新的版本24.04,上一个版本22.04,每个版本有5年支持周期,适合企业生产服务器使用,另外对容器支持较好,很多docker基础镜像采用utuntu。国产替代操作系统基于debian的有银河麒麟V10、统信U......
  • [OpenCV] 数字图像处理 C++ 学习——16直方图均衡化、直方图比较 详细讲解+附完整代码
    文章目录前言1.直方图均衡化的理论基础(1)什么是直方图(2)直方图均衡化原理(3)直方图均衡化公式2.直方图比较理论基础(1)相关性(Correlation)——HISTCMP_CORREL(2)卡方(Chi-Square)——HISTCMP_CHISQR(3)十字交叉性(Intersection)——HISTCMP_INTERSECT(4)巴氏距离......
  • c++中字符/串->整数
    char字符->整数数字:std::isdigit用于判断某个字符是否为数字(0-9)。字符串->数字:std::stoi用于将字符转换为整数。intisdigit(intch);//std::isdigit接受的参数类型为int,通常会传递字符类型(char)作为参数,但是字符会自动转换为对应的int值。intstoi(conststd::string&......
  • Python&C++迭代器比较
    Python&C++迭代器比较内容在Python和C++中,迭代器的概念都有类似的作用,但它们的实现方式和细节上存在一些区别。下面我们将从迭代器的定义、特性以及Python和C++中的不同点来进行对比。1.什么是迭代器?迭代器是一种对象,它允许你遍历一个集合(如列表、字典、字符串等)中......
  • Spring Boot利用dag加速Spring beans初始化
    1.什么是Dag?有向无环图(DirectedAcyclicGraph),简称DAG,是一种有向图,其中没有从节点出发经过若干条边后再回到该节点的路径。换句话说,DAG中不存在环路。这种数据结构常用于表示并解决具有依赖关系的问题。DAG的特性首先,DAG中的节点可以有入度和出度。节点的入度是指指向该......
  • C++入门——类和对象(上)
    文章目录一、类的定义1.1类的定义格式1.2访问限定符1.3类域二、实例化2.1实例化概念2.2对象大小三、this指针四、C++和C语言实现Stack栈的对比总结一、类的定义1.1类的定义格式class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分......
  • C++ 解析 RDP 协议
    远程桌面协议(RemoteDesktopProtocol,RDP)是微软开发的一种网络通信协议,用于提供远程桌面会话服务。它允许用户通过网络连接至远程计算机,并像使用本地计算机一样操作远程系统。本文档将详细探讨在C++环境中如何解析RDP协议,涵盖协议层次解析、连接过程管理、数据加密解密、......
  • C++三大特性——继承性(超万字详解)
    目录前言一、封装1.封装(Encapsulation)二、继承1.构造函数的调用顺序原理:2.析构函数的调用顺序原理:3、派生类的隐藏 1.成员函数隐藏2.成员变量隐藏3.基类函数的重载隐藏三、多重继承问题1.构造函数的调用顺序2.析构函数的调用顺序3.多重继承中的命名......