Trong C++, tôi có thể thay đổi các nhà điều hành trên một lớp học cụ thể bằng cách làm một cái gì đó như thế này:điều hành quá tải trong C
MyClass::operator==/*Or some other operator such as =, >, etc.*/(Const MyClass rhs) {
/* Do Stuff*/;
}
Nhưng với việc không có các lớp học (được xây dựng theo mặc định) trong C. Vì vậy, làm thế nào Tôi có thể làm điều hành quá tải chỉ cho các chức năng chung?
Ví dụ: nếu tôi nhớ chính xác, nhập stdlib.h sẽ cung cấp cho bạn toán tử ->, chỉ là cú pháp đường cho (* strcut_name) .struct_element.
Vậy làm cách nào tôi có thể thực hiện việc này trong C?
Cảm ơn bạn.
Tôi không chắc chắn những gì bạn đang ngụ ý bằng cách nói "không có lớp học (được xây dựng trong theo mặc định)", nhưng không có lớp học trong C, thời gian. Được xây dựng trong hoặc cách khác. Và những gì bạn có nghĩa là quá tải nhà điều hành cho các chức năng? Điều đó không có ý nghĩa. – meagar
Vâng, bạn có thể tạo một mô hình đối tượng trong C với các lớp, nhưng nó sẽ không bằng cách sử dụng cú pháp khác với cú pháp C thuần túy. Đối với những nỗ lực của tôi tại đây, hãy xem http://jonsterling.github.com/2009/08/28/implementing-object-oriented-programming-in-pure-c.html và http://jonsterling.github.com/2009 /09/07/object-oriented-programming-in-c-mark-two.html. –
Jonathan có trực giác thích hợp như những gì tôi đang phải chịu đựng. Tôi đã nói rằng bạn có thể buộc C vào một mô hình OOP. –