如果没有定义,C ++使用默认变量定义

时间:2015-04-18 19:45:48

标签: c++ c++11

我正在学习C ++而我正试图找到这个bash的C ++等价物:

output=${1:-text}

基本上,如果未指定,则使用默认值。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您是否正在谈论为变量分配默认值?这是对的吗?

如果是这种情况,您有多种选择:

  1. 使用构造函数初始化列表。
  2. demo.h

    class demo
    {
    public:
        demo();
        ~demo();
    private:
        int var;
    };
    

    demo.cpp

    demo::demo() :
    var(0)
    {
    }
    

    以上示例是构造函数初始化列表。您可以通过执行以下操作来初始化任意数量的变量:

    demo::demo():
    var(0),
    var2("Bob"),
    var3("Demo2)
    {
    }
    

    要初始化的所有变量都用逗号分隔。

    但是,如果它是您要定义的函数的默认值,那么您可以执行以下操作:

    class demo2
    {
    public:
        void do_stuff(string name, int age, bool student = true);
    };
    

    默认变量后面总是有一个=,并且必须设置该值。我相信它也必须是参数列表中的最后一个参数。所以这允许你调用do_stuff只传递两个参数。

    我希望这一切都有所帮助。