当前位置:首页 > 第五章答案类、构造函数、拷贝构造函数、静态成员、友元
double Total,Rate; };
void main( )
A a1(1000.0,O.035),a2(768.0,O.028);
cout<<Count(a1)<<','<<Count(a2)<<end1; 运行该程序输出如下结果 1035, 789.504 说明:
该程序的类A中定义一个友元函数(函数体可以定义在类体内,通常定义在类体 外)。该程序是计算利息的。例如,本金1000元,存一年,利率为3.5%,一年后本利和为1035元。 5.
#include
class Set {
public: Set() { PC=0; } Set(Set &p); void Empty() { PC=0; } int IsEmpty() { return PC==0; } int IsMemberOf(int n); int Add(int n); void Print(); friend void reverse(Set *m); private: int elems[100]; int PC; };
int Set::IsMemberOf(int n) { for(int i=0;i } int Set::Add(int n) { if (IsMemberOf(n)) return 1; else if(PC>=100) return 0; else { elems[PC++]=n; return 1; } } Set::Set(Set &p) { PC=p.PC; for (int i=0;i void Set::Print() { cout<<'{'; for(int i=0;i void reverse(Set *m) { int n=m->PC/2; for(int i=0;i void main() { Set A; cout< A.Print(); Set B; for(int i=1;i<=8;i++) B.Add(i); B.Print(); cout< 运行该程序输出结果如下所示. 1 {} {1,2,3,4,5,6,7,8) 1 {11,12,13,14,15,16,17,18,19} {19,18,17,16,15,14,13,12,11} 说明: 该程序的Set类是用来对一个int型数数列进行操作的程序.Set类中,数据成员有 一个数组elems[],它用来存放int型数数列的,另一个数据成员PC是一个标识数组中有 多少个数的“指针”。当PC为0时,表示数列为空,当PC=100时表示数列已满.该程序 中,给出的数列操作如下所示。 (1)清空数列。使用函数Empty()。 (2)判断数列是否是空。使用函数IsEmpty()。 (3)向数列中填加数据。使用函数Add()。 (4)判断某数是否已存在数列之中。使用函数IsMemberof()函数。 (5)输出显示数列的内容。使用函数Print()。 (6)将已知数列逆向排列。使用函数reverse()。 另外,该类中还定义了两个构造函数,用于初始化所创建的对象。一个是默认构造函数,另—个是拷贝初始化构造函数。 读者首先熟悉上述函数的功能,如有兴趣再补充一些其他操作函数。 四、按下列要求编写程序 在一个程序中,实现如下要求: (1)构造函数重载; (2)成员函数设置默认参数; (3)有一个友元函数; (4)有—个静态函数; (5)使用不同的构造函数创建不同对象. 程序内容如下所示。 #include class test { public: text( ) {} text(int i,int j=20) { t1=i; t2=j; t+=j-i; } static int fun(text & T); friend int add(text & T); private: int t1,t2; static int t; }; int text::fun(text & T) { t+=T.t; return t; } int add(Test & T) { int n=T.t1+T.t2; return n; } int Test::t=5; void main() { Test a1,a2(10),a3(15,25); cout<
共分享92篇相关文档