新关键字有何不同?

from flask import flask
import os

app = flask(__name__)

@app.route('/')
def hello():
    SECRET_KEY = os.environ.get('SECRET_KEY')
    return SECRET_KEY 

为什么在class sortedList { class Node { public: int value; Node* next; Node() { this->value = 0; this->next = NULL; } Node(int value) { this->value = value; this->next = NULL; } }* head = NULL,* tail = NULL; public: void addNode(int value) { Node* n = Node(value); //More code... } }; 之前添加new会使代码正确? 我认为上面的代码应该保持错误,因为指针不等于节点。

ferfrevervr 回答:新关键字有何不同?

Node(value)是类型Node的临时值。 Node* n是类型Node*的变量。您正在尝试使用Node*类型的参数初始化Node类型的对象。这些类型不能彼此隐式转换,因此程序格式错误。

new T的结果为T*。因此,new Node(value)的结果为Node*。可以使用类型为Node*的参数来初始化类型为Node*的对象。

,

这是无效的代码:

Node* n = Node(value);

new起作用的原因是new返回一个指针。

您可以使用动态存储来声明Node

Node* n = new Node(value);

或自动存储:

Node n(value);
本文链接:https://www.f2er.com/3122734.html

大家都在问