16-7.txt

来自「C++完美演绎 经典算法 如 /* 头文件:my_Include.h */ #i」· 文本 代码 · 共 55 行

TXT
55
字号
/* 范例:16-7 */
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#define Max 6   // 定义类animal中最大的字符串个数
class animal
{
  public:
    animal(string ptr[])
    {
      for(int i=0;i<Max;i++)
        ani_name[i] = ptr[i];
    }
    string ani_name[Max]; 	// #1 定义 Max 个字符串指针
    string& operator[](int tmp);
    int operator()(int tmp);
};

string& animal::operator[](int tmp)
{
  return (ani_name[tmp]); 	// #2 返回tmp索引指定的字符串值
}
int animal::operator()(int tmp)
{
  return (ani_name[tmp]).length();	// #7.1 取得该字符串长度
}

void main(void)
{
  string str[]= {"elephant","deer","hog","giraffe","tiger","gibbon"};
  animal a(str);	// #3 传入数组起始地址

  cout << "...列出动物成员的名字...\n";
  for(int i=0;i<Max;i++)
    cout << setw(15) << right << a[i] << endl;	// # 4 宽度15,靠右
  a[3] = "eagle";	// #5 变更a[3]值
  cout << "变更后a[3]=" << a[3] << endl;	// # 6
  cout << "a[2]=" << a[2] << endl;
  cout << "a(2)=" << a(2) << endl;	// #7.2
  getchar();
}

程序执行结果:
...列出动物成员的名字...
	elephant
	deer
	hog
	giraffe
	tiger
	gibbon
变更后a[3]=eagle
a[2]=hog
a(2)=3

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?