欢迎来到天天文库
浏览记录
ID:52243489
大小:120.70 KB
页数:50页
时间:2020-03-25
《面向对象的程序设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向对象的程序设计华中科技大学计算机学院李瑞轩第2章C++的变量、类型及函数本章内容:¢2.1声明及定义¢2.2类型定义¢2.3引用类型¢2.4函数参数¢2.5函数内联2.1声明及定义¢声明:对名及其内涵的不完整描述。¢定义:对该名及其内涵的完整描述。¢名可以声明多次,但只能定义一次。¢类型声明:前向引用声明只说明类名。¢classStudent;¢变量声明:类型、变量名。定义再加初值。¢函数声明:函数原型只说明函数名,返回类型以及函数参数。定义再加函数体。2.1声明及定义¢C语言:一般只允许以
2、常量表达式初始化变量,局部非静态变量可以用任意表达式初始化。变量声明和定义必在语句前。¢C++语言:所有变量都可以用任意表达式初始化。变量声明和定义不必在语句前。兼容C,局部非静态变量如不初试化,则其值不确定。¢常量表达式:编译时可计算出常量值。¢任意表达式:常量、变量、函数调用等组成。只能在运行时计算出值。2.1声明及定义¢常量表达式:3,3.14*3*3,size2,sizeof(int[2]),sizeof(3+printf(“ABC”))¢任意表达式:¢常量表达式¢A,3+A¢print
3、f(“ABCDEF”)¢3+printf(“ABCDEF”)¢注意:int[2]是类型表达式,而非值表达式。值表达式包括常量表达式和任意表达式。值表达式又可分为左值或右值表达式。2.1声明及定义¢左值表达式:可以出现在等号左边的表达式。¢非只读类型的变量:intx;x=2;¢引用非只读类型的变量:int&y=x;y=3;¢指向非只读单元的内容访问:int*p=&x;*p=1;¢引用非只读类型的函数:int&f(){};f()=3;¢前置++和—运算,赋值运算:(x=2)=3;(++x)=5;¢右
4、值表达式:只能出现在等号右边的表达式。¢注意:左值表达式是右值表达式,反之不成立。¢某些变量或参数传递只能用左值表达式。如非只读类型的引用变量或参数。2.1声明及定义¢【例2.1】C++的声明、定义及初试化。¢#include¢externinth=0;//C变量定义¢externinti;//C变量声明¢inti;//C变量定义,缺省初始化i=0¢intj=i+4;//C++变量定义,初始化j=i+4¢staticintp=j+5;//C++变量定义,初始化为p=j+52.1
5、声明及定义voidmain(void){staticintn=j+5;//C++定义,初始化为n=j+5inti=20;//C定义,初始化为i=20intk;//C声明,k未初始化值不定for(intj=i+2;j<9;j++)//C++定义,初始化为j=i+2{intm=5;//C定义,初始化为m=5k+=m;//警告,k未初始化就被引用};intq=23;//C++在语句中间定义变量scanf("%d",&j);//输入main外定义的变量jstruct{intk,m;}b={j+3,5};
6、//C++定义,任意表达式初始化inta[4]={scanf("%d",&k),1};//C++定义,任意表达式初始化}2.1声明及定义¢C允许初试化局部静态数组。C++的局部自动数组通常在栈段分配空间,若初始化则还会在数据段分配空间。¢程序X.CPP:¢voidmain(void)//空间在栈段¢{intarray[10];}¢程序Y.CPP:¢voidmain(void)//空间在数据段¢{staticintarray[10]={1,2};}¢程序Z.CPP:¢voidmain(void)/
7、/空间在栈段和数据段¢{intarray[10]={1};}2.1声明及定义¢简单类型全局变量:若初始化表达式是任意表达式,则初始值由编译生成的开工函数在运行时计算得到。¢复杂类型全局变量:即全局对象,其初始化由开工函数调用其相应的构造函数完成。¢注意:开工函数先于main执行,收工函数后于main执行。收工函数负责自动执行全局对象的析构函数。因此,程序被看作一个对象,有构造(生),活动(main),析构(死)。2.1声明及定义¢#include¢longsum(void
8、){¢intm,n,s=0;¢cout<<"Pleaseinput:";¢for(cin>>n,m=1;m<=n;m++)s+=m;¢cout<<"Sum="<
此文档下载收益归作者所有