1> 指针必须指向的是实例
例: 上述代码中
Dog *d=[Dog new];
//S->dog->DogCol=DogColorBlack; 错误,指针指向错误,指向的是类型,不是实例对象
//S->dog->DogWeight=40; 错误,指针指向错误,指向的是类型,不是实例对象
实例化了一个Dog,但是并没有通过指针修改这个实例化的Dog的参数,而是直接修改类的定义中定义的另一个类的行参
2> 无法直接跨对象调用类中对象的方法
例: Student *S=[Student new];
// [S DogEat]; 这样写是错误的,学生类里面并没有DogEat的方法。
Dog D=[Dog new];
S->dog=D;
[S->dog DogEat]; 可以实例化一个Dog赋给S中的Dog对象,再这样执行这个方法。
|
|