使用指向对象的指针
1 指向对象的指针使用示例
使用MyClassString类定义一个对象数组,目标是找出数组中字符串长度最大的对象。通过一个指向MyClassString类对象的指针来跟踪最长字符串。
// 方法一
int main() {
using namespace std;
MyClassString ar_st[] = { "rice","food","cat","home","school","cake","dog" };
size_t length = sizeof(ar_st) / sizeof(ar_st[0]);
MyClassString *st = &ar_st[0];
for (int i = 0; i < length; i++) {
if (ar_st[i].length() > st->length()) {
st = &ar_st[i];
}
}
cout << "max length string: " << *st << ", length is " << st->length() << endl;
return 0;
}
程序说明:定义一个指向MyClassString类对象的指针,并将其初始化为数组第一个元素的地址。通过for循环逐一比较字符串长度,找出最长的一个。由于st是指向对象的指针,因此使用->操作符访问类的方法。
另一种方式是使用new操作符创建一个指向MyClassString对象的指针:
// 方法二
int main() {
using namespace std;
MyClassString ar_st[] = { "rice","food",,,,, };
length = (ar_st) / (ar_st[]);
MyClassString *st = MyClassString;
( i = ; i < length; i++) {
(ar_st[i].() > st->()) {
st = &ar_st[i];
}
}
cout << << *st << << st->() << endl;
;
}

