首页 > 解决方案 > 以不同的风格在 C++ 中定义函数

问题描述

最近在浏览某人用 C++ 编写的代码时,我看到他以非常不同的方式声明函数,他定义的函数如下所示:

struct Node{
   Node* next;
   Node* prev;
   int value;
   int key;
   Node(Node* p, Node* n, int k, int val):prev(p),next(n),key(k),value(val){};
   Node(int k, int val):prev(NULL),next(NULL),key(k),value(val){};
};

所以在这段代码中

Node(Node* p, Node* n, int k, int val):prev(p),next(n),key(k),value(val){};

我无法理解这一行,就像他如何以这种方式定义函数一样,因为我们定义了具有返回类型、参数和主体的函数(如果是构造函数,我们没有返回类型)。我无法理解这行代码是如何工作的。请任何人详细解释我。

在这段代码中,我无法理解他如何使用构造函数,就像他使用冒号定义它一样:,还看到他如何初始化变量value,只是将其转换为函数而没有正文value(val){} 提前谢谢。

标签: c++functionconstructor

解决方案


推荐阅读