/*
设计一个”学生“类 1> 属性 * 姓名 * 生日
用结构体作为类的实例变量(生日)
*/
#import <Foundation/Foundation.h>
//定义一个结构体 typedef struct d1 {
//年 int year; //月 int month; //日 int day;
}MyDate;
//学生类的声明 @interface Student :NSObject { @public //姓名 NSString *_name; //生日 // 1999-02-01 MyDate _birthday; }
@end
//学生类的实现部分 @implementation Student
@end
int main(int argc, const char * argv[]) { @autoreleasepool {
//创建一个学生对象 Student *stu = [Student new]; stu->_name = @"小明";
//生日 // 1992-11-11 //stu->_birthday 在对象 创建的时候,已经被初始化了 //1)错误写法 // stu->_birthday = {1992,11,11};
//正确写法: //1) 强制类型转换 // stu->_birthday = (MyDate){1992,11,11}; //2) 先定义一个结构体变量,并且初始化,然后赋值给 实例变量 // MyDate d1 = {1999,11,11}; // stu->_birthday = d1; //3) 逐个赋值 stu->_birthday.year = 1992; stu->_birthday.month = 11; stu->_birthday.day = 11;
NSLog(@"--->%d,%d,%d",stu->_birthday.year,stu->_birthday.month,stu->_birthday.day); // // MyDate d1 = {1992,11,11}; // NSLog(@"%d,%d,%d",d1.year,d1.month,d1.day); //结构体变量通过.的方式访问结构体成员
// MyDate d2; //定义了一个结构体的变量 //系统并不知道 d2 到底是结构体还是 数组 // int a[3]={1,2,3}; // d2 = (MyDate){1992,11,11};
} return 0; }
|