zoukankan      html  css  js  c++  java
  • C++构造函数初始化列表

    代码1:

    #include <iostream>
    using namespace std;

    class Person {
       public:
        int id = 200;
        //如果这里没有代码id(1000),定义出来的对象的id值为int id = 200;代码初始的值
        Person() : id(1000) {}
    };

    int main(int argc, char const *argv[]) {
        Person pp;
        cout << pp.id << endl;  // id:1000
        return 0;
    }
     
    代码2:
    #include <iostream>
    #include <string>
    using namespace std;

    class Person {
       public:
        int id2 = 202;
        int id1 = 201;

        //初始化的顺序和初始化列表的顺序无关,而是和在类中定义的顺序相关的
        //所以这里先使用的是id1的值初始化的id2,然后哦使用id1_初始化的id1
        //所以id2的值不符合预期
        //所以在初始化列表中尽量不要使用一个属性值初始化另外一个属性值
        Person(int id1_, int id2_) : id1(id1_), id2(id1) {}
    };

    int main(int argc, char const *argv[]) {
        Person p(1000, 2000);
        cout << p.id1 << endl;  // output:1000
        cout << p.id2 << endl;  // output:0
        return 0;
    }
  • 相关阅读:
    Linux如何自动获取IP地址
    jq操作select集合
    UDP and TCP
    IPv6
    DHCP, NAT
    队列之顺序存储实现
    ARP, Fragmentation and Reassembly
    Classless Interdomain Routing (CIDR)
    Subnet Routing Examples
    Subnetting
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/15520331.html
Copyright © 2011-2022 走看看