c++ - 我是 c++ 的新手,你能解释一下这个例子中的指针吗

标签 c++ pointers

为什么第 18 行 Node* bob = new(); 没有给我错误,而第 22 行 node actualValue = new Node; 有。

#include <iostream>

using namespace std;

class Node{
    Node* node;
public:
    int data;
};

int main() {
    cout << "Hello, World!" << std::endl;
    int a = 200;
    int* ptr = &a;

    cout << a << " pointer is " << ptr << endl;

    Node* bob = new Node();
    bob->data = 1;


    Node actualValue = new Node;
    return 0;
}

最佳答案

Node* bob = new Node(); 不要报错,因为 new Node() 返回一个指针 Node* 并且bob 的类型也是 Node*。您可以在具有相同类型的指针之间进行赋值。

Node actualValue = new Node; 给出错误,因为 actualValue 的类型是 Node 和类 Node没有任何接受指针 Node* 的构造函数。

关于c++ - 我是 c++ 的新手,你能解释一下这个例子中的指针吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62797492/

相关文章:

c++ - OpenGL:如何根据相机距离对点进行排序?

c++ - 将 unsigned int 的三元组映射到 double——这是最优化/最有效的方法吗?

c++ - 如何找出 nviews vector 的返回类型

c - 如果指针完全相同,C++ 指针别名会构成威胁吗?

c - 链表 C - 当不存在头时创建头

c - 无法将新地址分配给函数中的指针?

c++ - 是否可以在每个类中只传递一次变量而不是将其设为静态?

c++ - 从 native 进程加载 .NET PE 的内存

c++ - 在函数中返回数组

c++ - 新表达式会返回一个指向数组的指针吗?