A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CcrazyOne 中级黑马   /  2015-10-14 00:01  /  1045 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

  设计一个”学生“类
  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;
}


1 个回复

倒序浏览
强制转化那里干的漂亮
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马