cấu trúc typedef
{
int y;
trọng lượng int;
struct edgenode * tiếp theo;
}edgenode;
Mã này đưa ra lỗi:'edgenode': được xác định lại; các loại cơ bản khác nhau
Nó hoạt động tốt trong mã C.
为什么?
Bởi vì cấu trúc của bạn không có tên! Câu hỏi ngụ ý kế thừa C - mã được viết theo cách tôi đã viết.
Giải pháp C++ thuần túy là:
cấu trúc cạnh
{
int y;
trọng lượng int;
nút cạnh *tiếp theo;
};
Điều này không hoạt động trong C. Trong C, phù hợp với câu hỏi, bạn sẽ viết:
cạnh cấu trúc typedef
{
int y;
trọng lượng int;
struct edgenode * tiếp theo;
} nút cạnh;
Bây giờ cấu trúc của bạn đã có tên - cấu trúc cạnh
. Tất nhiên, nó cũng có typedef - nút cạnh
, nhưng trình biên dịch không biết tên cho đến khi nó đạt đến dấu chấm phẩy cuối cùng (xấp xỉ). Bạn cũng có thể viết:
typedef struct edgenode edgenode;
cấu trúc cạnh
{
int y;
trọng lượng int;
nút cạnh *tiếp theo;
};
Tôi là một lập trình viên xuất sắc, rất giỏi!