标签:
1. 字符串类的兼容性
(1)string类最大限度的考虑了C字符串的兼容性
(2)可以按照使用C字符串的方式使用string对象,如
string s = "abcedefg"; char c = s[i];
【编程实验】用C方式使用string类
#include <iostream> #include <string> using namespace std; int main() { string s = "a1b2c3d4e"; int n = 0; for(int i=0; i<s.length(); i++) { if(isdigit(s[i])) //通过C字符串方式使用string对象(即数组) { n++; } } cout << n << endl; //4 return 0; }
2. 类的对象如何支持数组的下标访问
(1)数组访问是C/C++中的内置操作符
(2)数组访问符的原生意义是数组访问和指针运算
a[n] ←→ *(a + n) ←→ *(n + a) ←→ n[a]
【实例分析】指针和数组的复习
#include <iostream> #include <string> using namespace std; int main() { int a[5] = {0}; for(int i=0; i< 5; i++) { a[i] = i; } for(int i=0; i< 5; i++) { //指针方式的访问数组,比较不直观! //而下标访问的使用,可以隐藏对指针的操作 cout << *(a + i) << endl; //cout<< a[i] << endl; } cout << endl; for (int i=0; i<5; i++) { i[a] = i + 10; //a[i] = i + 10; } for (int i=0; i<5; i++) { cout << *(i + a) << endl; //cout<< a[i] << endl; } return 0; }
3. 重载数组访问的操作符:[]
(1)只能通过类的成员函数重载
(2)重载函数能且仅能使用一个参数
(3)可以定义不同参数的多个重载函数
(4)可以隐藏对指针的操作
【编程实验】重载数组访问操作符
【编程实验】数组类的完善
4. 小结
(1)string类最大程序的兼容了C字符串的用法
(2)数组访问符的重载能够使得对象模拟数组的行为
(3)只能通过类的成员函数重载数组访问符
(4)重载函数能且仅能使用一个参数
标签:
原文地址:http://www.cnblogs.com/5iedu/p/5416500.html