默认构造和有参构造调用的问题
代码#include<iostream>
using namespace std;
struct Node {
int a;
Node* aa;
Node() :a(0), aa(NULL){}
Node(int x):a(x),aa(NULL){}
Node(int x,Node*a):a(x),aa(a){}
};
void test01() {
Node a(0);
Node* A = &a;
cout << A->a << A->aa << endl;
Node b();
Node* B = &b;
}
int main()
{
test01();
return 0;
}
构造一个结构体a,调用a的有参构造函数,可以使用一个对应类型的指针接收a的地址
构造一个结构体b,调用无参默认构造函数,确发现无法使用一个对应类型的指针接收a的地址,错误显示:
"Node (*)()" 类型的值不能用于初始化 "Node *" 类型的实体;
#include<iostream>
using namespace std;
struct Node {
int a;
Node* aa;
Node() :a(0), aa(NULL) {}
Node(int x) :a(x), aa(NULL) {}
Node(int x, Node* a) :a(x), aa(a) {}
};
void test01() {
Node a(0);
Node* A = &a;
cout << A->a << A->aa << endl;
Node b; // <-------------------- 修改这里
Node* B = &b;
}
int main()
{
test01();
return 0;
}
页:
[1]