cpp-初始化列表

02-6 初始化列表

作用:在类中初始化类中的属性。

c++提供了初始化列表语法,用来初始化属性。

语法:构造函数():属性1(数据值1),属性2(数据值2)...{}

注意冒号:的位置:冒号位于构造函数形参列表的后面。

假设我们有这样的一个类:

class Person
{
private:
    string m_name;
    int m_age;
public:
    void setname(string name)
    {
        m_name = name;
    }
    void setage(int age)
    {
        m_age = age;
    }
    string getname()
    {
        return m_name;
    }
    int getage()
    {
        return m_age;
    }
};

在原来,我们初始化一个对象是这样的:

class Person p1;
p1.setname("张三");
p1.setage(18);

如果扩充一下,加上打印的命令:

int main()
{
    class Person p1;
    p1.setname("张三");
    p1.setage(18);
    cout << p1.getname() << endl;
    cout << p1.getage() << endl;
    return 0;
}

运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

张三
18

但是有了初始化列表,我们就可以在定义一个类的时候这样定义:

class Person
{
private:
    string m_name;
    int m_age;
public:
    void setname(string name)
    {
        m_name = name;
    }
    void setage(int age)
    {
        m_age = age;
    }
    string getname()
    {
        return m_name;
    }
    int getage()
    {
        return m_age;
    }
    Person():m_name("张三"), m_age(18)
    {
    }
};

省流量:比原来的多了一段这样的代码:

Person() :m_name("张三"), m_age(18)
{
}

这样运行一段这样的代码:

int main()
{
    class Person p1;
    cout << p1.getname() << endl;
    cout << p1.getage() << endl;
    return 0;
}

运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

张三
18

当然,这样会比较死板,因为每一个的初始值被固定好了。我们也可以这样写:

Person(string name, int age) :m_name(name), m_age(age)
{
}

那么运行一段这样的代码:

int main()
{
    string name = "李四";
    int age = 51;
    class Person p1(name, age);
    cout << p1.getname() << endl;
    cout << p1.getage() << endl;
    return 0;
}

运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

李四
51
文章「cpp-初始化列表」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/872」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇