Вот простой код, который я пытался использовать тип с собственной ссылкой и псевдоним одновременно.
#include <iostream>
class List {
private:
struct node {
int data;
struct node* next;
node(const int& d=0, struct node* n=nullptr) {
data = d; next = n;
}
~node() {};
};
using pNode = struct node*;
pNode head;
public:
List();
~List();
void print() const { std::cout << head->data; }
};
List::List() {
head = new node{55};
}
int main() {
List *a = new List;
a->print();
}
Это выше работает отлично.Тем не менее, я бы предпочел начать код, как показано ниже:
class List {
private:
using pNode = struct node*;
struct node {
int data;
pNode next;
...
Я хотел бы поместить using pNode = struct node*
перед определением struct node
, чтобы я мог использовать его также в определении struct node
,Я считаю, что этот стиль кода работает хорошо, если я не использую класс.