热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何像在Python中一样在C++中重新创建默认参数?

我在Python中有这个类,我试图用C++重新创建它,classNode:def__init__(self,data=None,nex

我在 Python 中有这个类,我试图用 C++ 重新创建它,

class Node: def __init__(self, data = None, next = None):
self.data = data
self.next= next

到目前为止,我已经用 C++ 构建了这个,

.h

#include
#include
class Node {
public:
int value;
Node* next;

Node(int value, Node next) : value(0), next(NULL){
std::cout <<"inside .h" <<"n";
};
};

.cpp

Node::Node(int value, Node next) {
this->value = value;
this->next = &next;
}

代码本身让我感到困惑,通常最好的做法是避免在里面编写方法,.h但它不会让我在没有 的情况下设置默认值{...},即我无法输入Node(int value, Node next) : value(0), next(NULL);我最初预期的内容。似乎我还定义了两个构造函数,鉴于相同的参数,这似乎很奇怪。

main它里面不允许我实例化一个对象Node(5)等等......

我们在 C++ 中有一种新方法来模仿上面的 Python 类吗?

回答

您可以通过提供默认参数以相同的方式执行此操作:

Node(int val = 0, Node* nxt = nullptr) : value(val), next(nxt) {}

这既是默认构造函数,也是带有int和 指针的构造函数Node



作为旁注:

您可能希望使用以下形式,以增加灵活性:

Node(Node* nxt = nullptr, int val = 0) : next(nxt), value(val) {}

这样,您就可以创建(连接)一个Node默认值:

Node n(&next_node); // a Node instance with default value 0






推荐阅读
author-avatar
曹衡斌_307
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有