Tôi vừa mới bắt đầu học mục tiêu C và tôi thực sự bối rối cách các tệp .h và .m tương tác với nhau. chương trình đơn giản này có 3 file:Mô tả ngắn gọn về cách các tệp .h và .m tương tác trong mục tiêu c?
Fraction.h
#import <Foundation/NSObject.h>
@interface Fraction : NSObject {
int numerator;
int denominator;
}
- (void) print;
- (void) setNumerator: (int) n;
- (void) setDenominator: (int) d;
- (int) numerator;
- (int) denominator;
@end
Fraction.m
#import "Fraction.h"
#import <stdio.h>
@implementation Fraction
-(void) print { printf("%i/%i", numerator, denominator); }
-(void) setNumerator: (int) n { numerator = n; }
-(void) setDenominator: (int) d { denominator = d; }
-(int) denominator { return denominator; }
-(int) numerator { return numerator; }
@end
Main.m
#import <stdio.h>
#import "Fraction.h"
int main(int argc, char *argv[]) {
Fraction *frac = [[Fraction alloc] init];
[frac setNumerator: 1];
[frac setDenominator: 3];
printf("The fraction is: ");
[frac print];
printf("\n");
[frac release];
return 0;
}
Từ những gì tôi hiểu, chương trình ban đầu bắt đầu chạy tập tin main.m. Tôi hiểu các khái niệm C cơ bản nhưng toàn bộ công cụ "class" và "instance" này thực sự khó hiểu. Trong tệp Fraction.h, @interface định nghĩa tử số và mẫu số như một số nguyên, nhưng nó còn làm gì dưới đây với (void)? và mục đích xác định lại dưới đây là gì? Tôi cũng khá bối rối như những gì đang xảy ra với các phần (void) và (int) của Fraction.m và cách tất cả điều này được tập hợp lại trong tệp main.m. Tôi đoán những gì tôi đang cố gắng để nói là điều này có vẻ như một chương trình khá dễ dàng để tìm hiểu làm thế nào các phần khác nhau làm việc với nhau - bất cứ ai có thể giải thích trong thuật ngữ không công nghệ cao?