用结构体作为类的实例变量(生日)
*/
#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;
}
|
|