C++基础教程素材6Word文件下载.docx
- 文档编号:19635087
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:39
- 大小:20.64KB
C++基础教程素材6Word文件下载.docx
《C++基础教程素材6Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++基础教程素材6Word文件下载.docx(39页珍藏版)》请在冰豆网上搜索。
voidmain()
Mp(5,7),q;
q.copy(&
p);
fun(p,&
q);
p.print();
q.print();
v
oidfun(Mm1,M*m2)
m1.setxy(12,15);
m2->
setxy(
22,25);
5,7
22,25
M(inti,intj){x=i;
void
copy(M&
m);
voidsetxy(inti,intj){x=i;
y=j;
voidp
rint(){cout<
voidM∷copy(M&
m)
x=m.x;
y=m
.y;
voidfun(Mm1,M&
m2);
q.copy(p);
fun(p,q);
p.pr
int();
m2)
m2.setxy(22,25);
A(){a=b=0;
A(inti,intj){a=i;
b=j;
void
copy(A&
aa);
voidprint(){cout<
a<
b<
pr
ivate:
inta,b;
voidA∷copy(A&
aa)
if(this==&
aa)return;
*this=aa;
voi
dmain()
Aa1,a2(3,4);
a1.copy(a2);
a1.print();
3,4
classDATE
DATE(intm,intd,inty);
voidprintf();
intmonth,day,year;
DATEdates[4]={DATE(7,22,1998),DATE(7,23,1998),
DATE(7,24,1998),DATE(7,25,1998)}
dates[0]=DATE(7,22,1998);
dates[1]=DATE(7,23,1998);
dates[2]=DATE(7,24,1998);
dates[3]=DATE(7,25,1998);
DATE(){month=day=year=0;
DATE(intm,intd,inty)
{
month=m;
day=d;
year
=y;
}
voidprint()
c
out<
″Month=″<
month<
″,Day=″<
day<
″,Year=″<
year<
intmonth,day,year;
DATEdates[5]={DATE(7,22,1998),DAT
E(7,23,1998),DATE(7,24,1998)};
dates[4]=DATE(7,26,1998);
for(inti=0;
i<
5;
i++)
dates
[i].print();
Month=7,Day=22,Year=1998
Month=7,Day=23,Year=1998
Month=7,Day=24,Year=1998
Month=7,Day=25,Year=1998
Month=7,Day=26,Year=1998
int(*P)[3];
inta[][3]={1,2,3,4,5,6,7,8,9};
int(*pa)[3](a);
3;
″\n″;
for(intj=0;
j<
j
++)
*(*(pa+i)+j)<
″″;
123
456
789
M(){a=b=0;
M(inti,intj){a=i;
b=j;
print(){cout<
′\t′;
Mm[2][4];
intx=10,y=10;
2;
4;
j++)
m[i][j]=M(x+=2,y+=10);
M(*pm)[4](m);
for(i=0;
(*(*(pm+i)+j)).print();
执行该程序输出如下结果:
12,2014,3016,4018,50
20,6022,7024,8026,90
int*pa[3];
char*pc[2][5];
string.h>
constintN=
char*strings[N];
cha
rstr[80];
″Ateachprompt,enterastring:
\n″;
N;
″Enterastring#″<
″
:
″;
cin.getline(str,sizeof(str));
strings[i]=newch
ar[strlen(str)+1];
strcpy(strings[i],str);
″String#″<
″:
″<
strings[i]<
Ateachprompt,enterastring:
Enterastring#0:
abcde
Enterastring#1:
fghij
Enterastring#2:
klmno
Enterastring#3:
pqrst
Enterastring#4:
uvwxy
String#0:
String#1:
String#2:
String#3:
String#4:
A(inti=0,intj=0){a=i;
voidprint();
p
rivate:
voidA∷print()
Aa1(7,8),a2,a3(5,7);
A*b[3]={&
a3,&
a2,&
a1};
f
or(inti=0;
b[i]->
print();
0,0
7,8
argv[0]存放命令字
argv[1]存放命令行中第一个参数
argv[2]存放命令行中第二个参数
…
voidmain(intargc,char*argv[])
″Thenumberofcommandlineargumentsis″<
argc<
″Theprogramnameis″<
argv[0]<
if(argc>
1)
″Thecommandlinearguments:
for(inti=1;
argc;
argv[i]<
test]prog1
]prog2]prog3]prog4
Thenumberoftheargumentsis5
Theprogramnameistest.exe
Thecommandlinearguments:
prog1
prog2
prog3
prog4
intconstm=15;
m=18;
intconstx=2;
与
constintx=2;
类型说明符>
const<
数组名>
[<
大小>
]…
const<
<
intconsta[5]={1,2,3,4,5};
类名>
对象名>
A(inti,intj){x=i;
intx,y;
constAa1(3,4);
Aconsta2(8,19);
char*constptr1=stringptr1
ptr1=stringprt2;
*ptr1=″m″;
constchar*ptr2=stringptr1;
*ptr2=″x″;
是非法的。
而
ptr2=stringptr2;
&
引用名>
constdouble&
v
v=12.3
constintN=6;
voidprint(const
int*p,intn);
intarray[N];
cin>
>
array[i];
print(array,N
);
voidprint(constint*p,intn)
cout
″{″<
*p;
n;
*(p+i);
″}″<
1]2]3]4]5]6
{1,2,3,4,5,6}
classK
K(inti){k=i;
intsetk()const{returnk;
intk;
intadd(constK&
g1,constK&
g2);
Kk1(8),k2(17);
int
s=add(k1,k2);
s<
g
1,constK&
g2)
intsum=g1.setk()+g2.setk();
ret
urnsum;
25
函数名>
(<
参数表>
)const;
classR
R(intr1,intr2){R1=r1;
R2=r2;
voidprint()const;
intR1,R2;
voidR∷print()
R1
″<
R2<
voidR∷print()const
R1<
Ra(5,4);
a.print();
constRb(20,52);
b.p
rint();
5:
4
20;
52
a.print()
将调用成员函数:
而表达式:
b.print()
因此,获得上述结果。
6.3.4常数据成员
A(inti);
constint&
r;
constinta;
staticconstintb;
constintA∷b=10;
A∷A(inti):
a(i),r(a)
r<
Aa1(100),a2(0);
a2.print();
100:
10:
100
0:
r;
constinta;
A(inti):
a(i),r(a)
classB
A(inti,intj){A1=i;
A2=j;
A1<
A2<
intA1,A2;
B(inti,intj,intk):
a(i,j),b(k)
intb;
voidB∷print()
Bb(6,7,8);
b.print();
6,7
8
B(inti,intj,intk):
a(i,j),b(k)
{}
子对象名>
)
b=k;
new
delete
new<
初始值列表>
算术表达式>
]
A*ptr;
ptr=newA[5];
int*p;
p=newint[10];
delete<
指针名>
例如:
ptr=newA(5,6);
deleteptr;
delete[]<
delete[]]ptr;
delete[]]p;
classAA
AA(inti,intj)
A=i;
B=j;
″Constructor.\n″;
~AA(){cout<
″Destructor.\n″;
intA,B;
voidAA∷print()
A<
B<
AA*a1,*a2
a1=newAA(1,2);
a2=newAA(5,6);
a1->
a2->
deletea1;
deletea2;
Constructor.
1,2
5,6
Destructor.
if(!
a1)
cout<
″Heaperror!
exit
(1);
Heaperror!
strin
g.h>
B(char*s,doubl
en)
strcpy(name,s);
b=n;
″Constructor\n″;
B(){cout<
″De
fault\n″;
~B(){cout<
″Destructor″<
name<
voidgetb(char*s,double&
n)
strcpy(s,name);
n=b;
charname
[80];
doubleb;
B*p;
doublen;
chars[80];
p=newB[3
];
p[0]=B(″ma″,4.8);
p[1]=B(″wang″,3.6);
p[2]=B(″li″,3.1);
p[i].getb(s,n);
n<
delete[]p;
Default
Constructor
Destructorma
Destructorwang
Destructorli
ma,4.8
wang,3.6
li,3.1
stdlib.h>
voidfun()
if(p=newint)
*p=5;
*p<
deletep;
else
fun();
int*pa;
pa=newint[5];
if(!
pa)
pa[i]=i+1;
pa[i]<
delete[]
pa;
5
12345
doublef1(doubled);
doublef;
f=f1(10);
doublef1(floatd)
floatm;
m=d*2;
returnm;
int*p=100;
int*p=(int*)100;
A(){m=0;
A(doublei){m=i;
voidprint()
{cout<
m<
doublem;
Aa(5);
a=10;
a.prin
t();
10
A&
A∷operator=(inti)
m=i;
retrun*this;
class<
类型说明符1>
operator<
类型说明符2>
();
classRational
publ
ic:
Rational(intd,intn)
den=d;
num=n;
operatordouble();
pri
vate:
intden,num;
Rational∷operatordouble()
returndouble(den)/double(num);
Rationalr(5,8);
doubled=4.7;
d+=r;
d<
5.325
d+=double(r);
d+=static_cost<
double>
(r);
classList;
classItem
friendclassList;
Item(intd=0){data=d;
next=0;
Item*next;
intdata;
classList
List(){list=0;
List
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 基础教程 素材