まず、私は Objective-C の初心者です。現時点では、次の問題を解決しようとしています。
@interface Animal : NSObject {
@private
NSString* m_name;
}
-(Animal*) initName:(NSString*)name;
-(void) printName;
@implementation Animal
-(Animal*) initName:(NSString*)name {
self = [super init];
m_name = name;
return self;
}
-(void) printName {
NSLog(@"%s", m_name);
}
@end
@interface Bird : Animal {
}
-(Bird*) initName:(NSString*)name;
@implementation Bird
-(Bird*) initName:(NSString*)name {
self = [super initName:name];
return self;
}
@end
int main() {
Animal* bird = [[Bird alloc] initName:@"abird"]; // warning: assignment from distinct Objective-C type
[bird printName]; // prints invalid letters
[bird release];
}
コンストラクターの引数をスーパークラスに継承したいのですname
が、うまくいきません。また、コンストラクター内に名前を出力しようとしましたが、成功しませんでした。
必要なすべてのヘッダーが含まれています。warning: assignment from distinct Objective-C type [enabled by default]
子クラス オブジェクトを作成するときの警告は、私が受け取る唯一の警告です。
この問題を解決する方法を知っている人はいますか?
こんにちはダン