Har*_*Cho 10 c++ parameters function-parameter assignment-operator
我正在研究数据结构(列表,堆栈,队列),这部分代码让我感到困惑.
ListNode( const Object& theElement = Object(), ListNode * node = NULL);
template<class Object>
ListNode<Object>::ListNode( const Object& theElement, ListNode<Object> * node) {
element = theElement;
next = node;
}
Run Code Online (Sandbox Code Playgroud)
Object()电话呢?Cha*_*via 18
那些不是赋值运算符.这些是函数的默认参数.
函数可以有一个或多个默认参数,这意味着如果在调用点没有提供参数,则使用默认值.
void foo(int x = 10) { std::cout << x << std::endl; }
int main()
{
foo(5); // will print 5
foo(); // will print 10, because no argument was provided
}
Run Code Online (Sandbox Code Playgroud)
在您发布的示例代码中,ListNode构造函数有两个带默认参数的参数.第一个默认参数是Object(),它只是简单地调用默认的构造函数的Object.这意味着如果没有Object实例传递给ListNode构造函数,Object()将使用默认值,这意味着默认构造Object.
另请参阅:
使用默认功能参数的优点功能参数的
默认值
| 归档时间: |
|
| 查看次数: |
6903 次 |
| 最近记录: |