private:
chara;
};
•voidmain()
•{
•Ps('a');
•P*x=&s;
•x->print();
•}
或者采用下面的主函数
voidmain()
{
Ps[3]={'a','b','c'};
P*x=s;
for(inti=0;i<3;i++)
x[i].print();
cout<}
程序25
classSample
{
intx;
public:
voidsetx(inti)
{x=i;}
intputx()
{returnx;}
};
voidmain()
{
Sample*p;
SampleA[3];
A[0].setx(5);
A[1].setx(6);
A[2].setx(7);
for(intj=0;j<3;j++)
{
p=&A[j];
cout<putx();
}
cout<}
程序26
classEx
{
public:
Ex(intx,charc='c');
~Ex()
{cout<<'b'<voidoutdata()
{cout<private:
intda;
charch;
};
Ex:
:
Ex(intx,charc):
da(x),ch(c)
{
cout<<'A'<}
voidmain()
{
Exw(3,'a'),y
(1);
Exz[2]={Ex(10,'a'),Ex(1,'d')};
w.outdata();
y.outdata();
z[0].outdata();
}
程序27
•classSample
•{
•intx;
•public:
•Sample(){}
•voidsetx(inti){x=i;}
•friendintmax(SampleB[],intn)
•{intm=0;
•for(inti=0;i•if(B[i].x>m)m=B[i].x;
•returnm;
•}
•};
•voidmain()
•{
•SampleA[10];
•intArr[]={90,87,42,78,97,84,60,55,78,65};
for(inti=0;i<10;i++)
A[i].setx(Arr[i]);
cout<}
程序28
#include
constintN=6;//符号常量
voidprint(constint*p,intn);//常指针作函数参数
voidmain()
{
intarray[N];
for(inti=0;icin>>array[i];
print(array,N);//数组名为实参
}
voidprint(constint*p,intn)
{
cout<<"{"<<*p;
for(inti=1;icout<<","<<*(p+i);
cout<<"}"<}
程序29
#include
classK
{
public:
K(inti){k=i;}
intsetk()const
{returnk;}
private:
intk;
};
intadd(constK&g1,constK&g2)
{
intsum=g1.setk()+g2.setk();
returnsum;
}
voidmain()
{
Kk1(8),k2(17);
ints=add(k1,k2);
cout<
}
程序30
classM
{
public:
M(intx,inty){X=x;Y=y;}
voidMove(intx,inty)
{X=x;Y=y;}
voidPrint()const
{cout<private:
intX,Y;
};
voidmain()
{
constMm1(1,2);
m1.Move(3,3);//错误
m1.Print();
Mm2(3,4);
m2.Move(3,3);
m2.Print();
}
程序31
#include
classR{
intR1,R2;
public:
R(intr1,intr2){R1=r1;R2=r2;}
voidprint();
voidprint()const;//函数重载
};
voidR:
:
print()
{cout<"<voidR:
:
print()const//常成员函数的实现
{cout<voidmain()
{
Ra(5,4);
a.print();
constRb(20,52);
b.print();
}
程序32
classA
{
public:
A(inti);
voidPrint();
private:
constinta;
staticconstintb;
constint&r;
};
constintA:
:
b=10;
A:
:
A(inti):
a(i),r(a)
{
}
voidA:
:
Print()
{
cout<"<
"<}
voidmain()
{
Aa1(100),a2(0);
a1.Print();
a2.Print();
}
程序33
#include
classA
{
public:
A(inti,intj)
{A1=i;A2=j;}
voidprint()
{cout<private:
intA1,A2;
};
classB
{
public:
B(inti,intj,intk):
a(i,j),b(k)
{}
voidprint()
{
a.print();//子对象成员函数的调用
cout<
}
private:
Aa;//子对象
intb;
};
voidmain()
{Bb(6,7,8);
b.print();
}
程序34
#include
classA
{
public:
A(inti,intj)
{cout<<"A构造"<A1=i;A2=j;}
voidprint()
{cout<private:
intA