【问题标题】:Assigning parameter value in function declaration?在函数声明中分配参数值?
【发布时间】:2013-07-31 03:50:54
【问题描述】:

我不明白为什么在这个构造函数声明中,输入参数被赋值为2。

这是什么意思?这是否意味着默认情况下(除非传递其他内容),大小将为 2?

Graph(int size = 2);

我从来没有见过这样的语法,所以我什至不知道如何谷歌它:/

提前致谢!

【问题讨论】:

    标签: c++ parameters constructor


    【解决方案1】:

    你是对的,参数值默认为2。

    这样就可以正常调用了:

    Graph g(5);
    

    在这种情况下,size 将等于 5,

    或者你可以在不提供值的情况下调用它:

    Graph g;
    

    在这种情况下,size 将等于 2。

    注意:Graph g(); 实际上是一个函数声明,而不是构造/初始化。 C 和 C++ 允许您在其他函数中声明函数。 Graph g(); 是函数 g 的声明,它不接受任何参数并按值返回 Graph 对象。

    【讨论】:

    • 那么,这是否意味着我可以在不添加 int 参数的情况下创建一个新的 Graph?
    • @OleksiyDobrodum 顺便说一句,你也可以用函数来做到这一点。
    • 你的意思是任何功能,不一定是成员?这实际上是在不重写函数的情况下重载了它!凉爽的!每天学习新东西:)
    • @OleksiyDobrodum 是的,任何功能。 :) 有一些限制,例如如果你的函数需要 2 个整数(例如 int add(int x, int y),你不能选择只为第一个整数设置默认值,因为它变得不明确。我相信你可以在上面查找示例,只需 Google for 'C++ default parameters'。
    • Graph g(); -- 这是一个函数声明。它没有调用构造函数。删除括号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    相关资源
    最近更新 更多