C++培训材料.docx
- 文档编号:26278670
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:53
- 大小:31.81KB
C++培训材料.docx
《C++培训材料.docx》由会员分享,可在线阅读,更多相关《C++培训材料.docx(53页珍藏版)》请在冰豆网上搜索。
C++培训材料
一、类和对象(class&object)
面向对象编程:
利用对象的属性和方法来实现程序或者系统所需的功能;
非面向对象编程:
文件:
*.cpp、*.c;c++sourcefile;C++源代码文件(程序代码资源)
*.h;c++headfile;c++头文件;(定义,类型)
*.dsw工程工作区文件;
*.dsp工程文件
二、c++常用数据类型(DataTypes)与变量
整型:
intx;
长整型:
long;
单精度类型:
float
双精度类型:
double
逻辑型:
bool
字符类型:
char
字符串型:
CString
字节类型:
byte(0~255)
10e+5=10*105
TypeName
Bytes
OtherNames
RangeofValues
int
*
signed,
signedint
Systemdependent
unsignedint
*
unsigned
Systemdependent
__int8
1
char,
signedchar
–128to127
__int16
2
short,
shortint,
signedshortint
–32,768to32,767
__int32
4
signed,
signedint
–2,147,483,648to2,147,483,647
__int64
8
none
–9,223,372,036,854,775,808to9,223,372,036,854,775,807
char
1
signedchar
–128to127
unsignedchar
1
none
0to255
short
2
shortint,
signedshortint
–32,768to32,767
unsignedshort
2
unsignedshortint
0to65,535
long
4
longint,
signedlongint
–2,147,483,648to2,147,483,647
unsignedlong
4
unsignedlongint
0to4,294,967,295
enum
*
none
Sameasint
float
4
none
3.4E+/-38(7digits)
double
8
none
1.7E+/-308(15digits)
longdouble
10
none
1.2E+/-4932(19digits)
Ø数组:
类型数组名[数组大小]
(1)floatafRed[4]={0.0f,2.0f,3.0f,4.0f};
数组元素赋值:
afRed[2]=1024.568*2.0+3;
数组内存分配:
floatafRed[8]
(1)float*d=(float*)malloc(8*sizeof(float));
(2)float*d=newfloat[8]
(2)
三、基本语法
1.;///**/\n换行
2.函数
类型名函数名(参数〔类型名参数变量〕)
{
……
程序代码;
returnn;//返回值
}
longsum(inti)
{
longn=0;
for(intj=1;j<=i;j++)
{
n=n+j;
}
returnn;//返回值
}
3.语法:
运算:
+-*/=i++i—
sincostanatanabsfmod;
4.语句:
#include"math.h"//包含头文件
#definest100;//定义常数
return100;//返回值
循环:
for(intj=1;j<=i;j++)
{
n=n+j;
……
}
///////////////////////////////////////////////////////
intj=1;
do
{
n=n+j;
j++;
}while(j<=i);
///////////////////////////////////////////////////////
判断:
if(条件)
if(j!
=100&&i==100)
{
……
}
else
{
if(j>1001)
n=n+1;
else
n=n+2;
}
////////////switch///////////////////////////////////////////
switch(i)
{
case0:
n=1000;
break;
case1:
n=2000;
break;
case2:
n=2000;
break;
case3:
n=2000;
break;
default:
n=i;
break;
}
5、指针:
(1).指针变量:
类型名*变量名
int*I;
intmain(intargc,char*argv[])
{
intm;
intn;
sum(100,&m,&n);
longs1=m;
longs2=n;
//CStringss;
//s.format(
printf("从1加到100的奇数总和是:
%d\n从1加到100的偶数总和是:
%d\n",s1,s2);
return0;
}
voidsum(inti,int*s1,int*s2)//从1到i累加
{
*s1=0;
*s2=0;
for(intj=1;j<=i;j++)
{
if(fmod(j,2)==0)
*s1=*s1+j;
Return2;
else
*s2=*s2+j;
}
Return;
}
6.类与对象
#include"stdafx.h"
#include
classCat
{
public:
intGetAge();
intSetAge(intv);
voidMeow();
private:
intitsAge;
protected:
};
intCat:
:
GetAge()
{
returnitsAge;
}
intCat:
:
SetAge(intv)
{
itsAge=v;
return0;
}
voidCat:
:
Meow()
{
std:
:
cout<<"Meow.\n";
}
intmain(intargc,char*argv[])
{
Catwhitecat;
whitecat.SetAge(10);
whitecat.Meow();
std:
:
cout<<"whitecatisacatwhois.\n";
std:
:
cout< whitecat.Meow(); return0; } 7.概念: 类: 对象: 指针: 第一章C++语言的组成部分 1.cout函数: #include std: : cout<<5/8; std: : cout<<(float)5/8; std: : cout< : endl; Øcin函数(输入) intv; std: : cin>>v; 2.名词空间Namespace: 简化代码 Usingstd: : cout; Usingstd: : endl; cout< cout<<5/8; cout<<(float)5/8; cout< Usingnamespacestd; cout< cout<<5/8; cout<<(float)5/8; cout< 3.注释 //或者/*与*/ 第二章变量与常量 1.变量是存储信息的地方。 在内存地址中存储或者写入数据; 2.RAM(RandomaccessMemory,内存)随机存取存储区: 临时存储;最小单元: byte 3.C++关键字(不能用之命名变量或者函数) C++; If; While; For; Main; 4.变量定义: intI; i=-10; unsignedinti; i=-10;(错误) IntI,j,k,l; LongI,j,klongintI,j,k ShortI,j,kshortintI,j,k Long是Longint的简写;short是shortint的简写; 5.typedef自定义数据类型 typedefunsignedshortintUSSHORT; USSHORTI,j,k;(等价于: unsignedshortintI,j,k;) 6.short与long的回绕 shortI; I=32767 32767 I++ -32768 I++ -32767 7.特殊字符: \t Tab键盘 \n 新行 \r 回车键 \b 回退 \f 换页 8.常数定义;(常数值不能更改) #definestuperclass15; 或者: constunsignedshortintstuperclass=15 9.枚举型常量(enum) enumCOLOR{red,green,blue,white} 0,1,2,3 EnumCOLOR{red=100,green,blue=500,white} 100101500501 COLORmycolor; Mycolor=red; 例: intmain(intargc,char*argv[]) { enumWEEKDAY{Sun,Mon,Tues,Wedn,Thur,Frid,Satur}; WEEKDAYmyday; myday=Sun; if(myday==Sun||myday==Satur) printf("it'sweekend\n"); else printf("backtowork! \n"); return0; } 第四章表达式与语句 1.避免给常数赋值 35=25;(错误) 35=I;(错误) constintI=100; I=101;(错误) 2.注意数据类型; unsignedintI; I=100;(正确) I=-100;(错误) 3.交换变量值 inta=100; intb=200; inttemp=a; a=b; b=temp; a=b; b=a; (错误) inti,j; j=100; i=j++; 结果: I=100;j=101 inti,j; j=100; i=++j; 结果: I=101;j=101 4.表达式: 任何一个计算值的操作。 表达式总能返回一个值; x=a+b;x==y; 5.复杂表达式 y=x=a+b 如果a=3,b=2,则: x=5;y=5; 6.数学运算符 +-*/%(求余数,求模) ++-- 5/3=1;(float)5/3=1.66666666 x+=2表示: x=x+2 x-=2表示: x=x-2 7.优先级 intn=3*6+2+5*4+3*(2*3+1) 8.关系运算符 a>b;a=b;a<=b;a==b;a! =b 9.if语句else语句 inti=10,j; if(i<=10) { if(i>5) j=5; else j=i; } else { if(i>1000) j=0; else j=i*2; } 10.逻辑运算符 &&与||或! 非 if(a>=10&&a<=20); if(a<=10||a>=20); if(! (a==10)) 11.条件运算符(表达式1)? 表达式2: 表达式3 intk=(a>b)? a: b;(如a=10,b=15,责k=15) 第五章函数 1.什么是函数: 函数是能够对数据进行处理并返回一个结果的子程序。 包括内置函数和自定义函数; 2.局部变量与全局变量 #include"stdafx.h" intadd(intv1,intv2,ints);//函数原型 intadd(intv1,intv2,int*s);//函数原型 intsum=0;//全局变量 intmain(intargc,char*argv[]) { printf("HelloWorld! \n"); /////////////////////////////////////////// printf("\n---------------------\n"); intvv=0; intv=add(1000,250,vv); printf("V: %d\n",v); printf("VV: %d\n",vv); /////////////////////////////////////////// printf("\n---------------------\n"); int*vv2=newint[1]; intv2=add(1000,250,vv2); printf("V: %d\n",v2); printf("VV: %d\n",*vv2); /////////////////////////////////////////// printf("\n---------------------\n"); intvv3=0; intv3=add(1000,250,&vv3); printf("V: %d\n",v3); printf("VV: %d\n",vv3); printf("\n---------------------\n"); /////////////////////////////////////////// printf("sum: %d\n",sum); printf("\n---------------------\n"); return0; } intadd(intv1,intv2,ints) { s=v1+v2; sum=s;//此处sum为全局变量 returns; } intadd(intv1,intv2,int*s) { *s=v1+v2; intsum=*s;//此处sum为局部变量 return*s; } 3.默认参数: 原型: longchengfa(intn=5); ///////////////函数的默认参数////////////////////////////////////// longchengfa(intn) { longv=1; for(inti=1;i<=n;i++) v=v*i; returnv; } 调用: longt=chengfa();(结果为120)或者longt=chengfa(4);(结果为24) 4.函数重载: 同名函数定义多次; doubleadd(doublev1,doublev2);//函数原型 intadd(intv1,intv2,ints);//函数原型 intadd(intv1,intv2,int*s);//函数原型 doubleadd(doublev1,doublev2) { returnv1+v2; } intadd(intv1,intv2,ints) { s=v1+v2; sum=s; returns; } intadd(intv1,intv2,int*s) { *s=v1+v2; sum=*s; return*s; } 5.内嵌函数(避免跳转,从而提高程序执行效率) inlineintAdd(intv1,intv2);//原型 intAdd(intv1,intv2) { returnv1+v2; } //Add为内嵌函数 6.递归 longChengfang(intv)//递归函数 { if(v==1) returnv; else return(v*Chengfang(v-1)); } 如: v=5: Chengfang(5) =5*Chengfang(4) =5*4*Chengfang(3) =5*4*3*Chengfang (2) =5*4*3*2*Chengfang (1) =5*4*3*2*1 =120 第六章面向对象编程 1.类和对象 类: 抽象; 对象: 客观; 2.类的定义 #include"stdafx.h" #include classCat { public: //类的共有成员方法 intGetAge(); intSetAge(intv); voidMeow(); private: //类的私有成员属性(成员变量) intitsAge; protected: //保护类型 }; intCat: : GetAge() { returnitsAge; } intCat: : SetAge(intv) { itsAge=v; return0; } voidCat: : Meow() { std: : cout<<"Meow.\n"; } intmain(intargc,char*argv[]) { Catwhitecat;//定义类的对象: whitecat为Cat类的对象 whitecat.SetAge(10); whitecat.Meow(); std: : cout<<"whitecatisacatwhois.\n"; std: : cout< whitecat.Meow(); return0; } 3.构造函数与析构函数 4.成员函数const 第七章程序流程 1.循环: goto语句 inti=0; intv=0; loop: v=v+i; i++; if(i<5) gotoloop; 2.while循环 intSum(intv) { inti=0; intTotal=0; while(i<=v) { if(i%2==0) { i++; continue;//跳出本次循环,并继续下一次循环 } if(i>10) break;//退出循环、循环中止 Total=Total+i; i++; } returnTotal; } 3.do……while循环 longSum2(longv) { inti=0; intTotal=0; do { Total=Total+i; i++; }while(i<=v); returnTotal; } 4.for循环 for(inti=1;i<=10;i++) { for(intj=1;j<=20;j++) { …… } } for(intI=0,j=0;I<3;I++,j++) { std: : cout<<"I: "< "< : endl; } 5.switch语句 intv,n; …… switch(v) { case0: n=1000; break; case1: n=2000; break; case2: n=3000; break; case3: n=4000; break; default: n=i; break; } (如果v=2,则n=3000;如果v=1,则n=2000;……) 6. 7. 8. 第八章: 指针 (1).指针变量: 类型名*变量名 int*I; intmain(intargc,char*argv[]) { intm; intn; sum(100,&m,&n); longs1=m; longs2=n; //CStringss; //s.format( printf("从1加到100的奇数总和是: %d\n从1加到100的偶数总和是: %d\n",s1,s2); return0; } longsum(inti,int*s1,int*s2)//从1到i累加 { *s1=0; *s2=0; for(intj=1;j<=i;j++) { if(fmod(j,2)==0) *s1=*s1+j; else *s2=*s2+j; } return0; } 2.指针运算符: -> 4.删除指针: delete指针名; int*I=newint; deleteI; 5.内存泄漏 内存泄漏 迷途指针 正确处理方法1 正确处理方法2 int*i=newint; *I=100; i=newint; *i=200; int*i=newint; *I=100; deleteI; *i=200; int*i=newint; *i=100; *i=200; int*i=newint; *I=100; deleteI; i=newint; *i=200; 6.const指针 一般指针 Const指针 指针常数 Cat*Red
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 培训 材料