Trả về kiểu con trỏ cho function?

Em không hiểu code này là như thế nào ạ? Tại sao instance của struct lại là 1 function ạ?

Struct1* foo(int parameter1, char parameter2);

Đây là lệnh khai báo prototype cho function tên là foo, kiểu trả về của nó là pointer đến Struct1 chứ có phải là instance gì đâu?

1 Like

Vậy instance của structure tạo ra như thế nào ạ? Có phải là struct1 là 1 instance của Struct1?

struct Struct1{
char var1;
char var2;
};
Struct1 struct1; 

Đúng rồi bạn :slight_smile:

1 Like

mình nghĩ khái niệm instance chỉ tổn tại bên OOP thôi chứ nhỉ, mình hiểu đơn giản là 1 hàm có kiểu trả về là Struct1 thôi

Structural Languages vẫn có khái niệm instance, nhưng phải manual trong việc tạo instance, xoá instance và chọn instance. OOP thì quản lý phần đó hết cho mình.

Chi tiết hơn bạn có thể xem trong Code Complete, chương ADT, phần hiện thực multiple ADT instance cho non-OOP languages.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?