1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 实验6

实验6 实验目的 1、指针、引用和拷贝构造函数 通过指针、引用传递参数 由已有对象创建新对象时,执行位拷贝or拷贝构造函数 2、运算符重载 一元运算符重载 二元运算符重载 1.1 指针 1、设计函数 void markTable(char* table[], int size); 此函数按行输入字符串,从中摘出词并建立词表(词与词之间与空格隔开)。 当词表中的词满size-1个或发现名为”QUIT”的词时,建表工作即告完成。返回时,size记录的是表中词的实际个数,并且table的前size个元素中的每个元素指向一个词。 表中的词不得重复,每个词的长度不超过80,存放词的空间通过new操作获得。 #includeiostream #includestring using namespace std; int markTable(char* table[],int size); void main(){ int size=100; char*table[100]; markTable(table,size); for(int i=0;isize;i++){ couttable[i]endl; } for(int j=0;jsize;++j){ delete table[i]; } } int markTable(char* table[],int size){ char temp[80]; cout请输入 endl; for(int i=0;isize;++i){ cintemp; if(!strcmp(temp,QUIT)){ size=i; return i; } bool flag=ture; for(int j=0;ji-1;++j){ if(!strcmp(temp.table[j])) flag=false;} if(flag){ table[i]=new char[strlen(temp)+1]; strcopy_s(table[i],strlen(temp)+1,temp); } else --i; } } #includeiostream #includestring using namespace std; int markTable(char* table[],int size); void main(){ int size=100; char*table[100]; markTable(table,size); for(int i=0;isize;i++){ couttable[i]endl; } for(int j=0;jsize;++j){ delete table[i]; } } int markTable(char* table[],int size){ char temp[80];//存单词 cout请输入 endl; for(int i=0;isize;++i){ cintemp; if(!strcmp(temp,QUIT)){ size=i;//单词的个数 return i; }//判断是否跳出 int flag=1; for(int j=0;ji-1;++j){ if(!strcmp(temp.table[j]))//是否重复 flag=0;} if(flag){ table[i]=new char[strlen(temp)+1]; strcopy_s(table[i],strlen(temp)+1,temp); } else --i; } } 1.2 引用 函数只能返回一个值。如果程序需要从函数返回两个值怎么办? 解决方法之一是采用引用给函数传递两个参数,然后由函数往目标中填入正确的值。 因为采用引用传递允许函数改变原来的目标,这一方法实际上让函数返回两个信息。 这一策略绕过了函数的返回值,使得可以把返回值保留给函数。 1.2 引用 2、编写Factor()函数 检查用值传递的第一参数。如果不在0~20的范围内,它就简单地返回错误值(假设程序正常返回为0)。 程序所真正需要的值squared和cubed是通过改变传递给函数的引用返回的,而没有使用函数返回机制。 #includeiostream #includestring using namespace std; Factor(int a,int b,int c){ coutEnter a number:endl; cina; if(a20||a0) couterror; } b=a*a; c=a*a*a; //函数体内部只有一个返回值 } void main(){ int num; cinnum; int r1=sq; int r2=cu; Factor(num,r1,r2); } 1.3 拷贝构造函数 3、试图通过实

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档