一、引用:
(1)引用的作用是为变量其一个别名。
(2)在声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量。 例1:int &b=a1;
使用引用注意事项:
(1)使用引用作为参数完成时,完成地址传递方式,即传送的是实参变量的地址,使实参变量与形参变量具有同一个地址。
(2)返回引用的函数:为了将该函数用在赋值运算符的左边。 数据类型 &函数名(参数列表) 例:index(3)=16; ★输入与输出的操作: Cout语句的一般格式为:
Cout<<表达式1<<表达式2<<……<<表达式n; Cin语句的一般格式为:
Cin>>变量1>>变量2>>……>>变量n; ★注意:
(1)不能用一个插入运算符”<<”插入多个输出项
例1:cout<<a,b,c; /*错误,不能一次插入多项 */ ★一个cin语句可以分写成若干行。
例:cin>>a>>b>>c>>d;
cin>>a >>b >>c >>d;
输入变量值时可以用空格分隔,也可以用回车分隔。
二、类和对象
(1)类定义:类代表了某一批对象的共性和特征。
(2)类和对象的关系:类是对象的抽象,而对象是类的具体实例,或者说是类的具体表现形式。
(3)注意:
※类是抽象的,不占内存,而对象是具体的,占用存储空间。 ※类是一种用户自己定义的数据类型。
※类由数据成员和函数成员构成--封装思想的实现(数据封装就是使用类将数据和操作这些数据的代码连接在一起。在C++中,封装由struct、union和class等关键字提供)。 ★对象的基本特性:
※对象之间可以相互赋值; Location La,Lb; La.init(5,6); Lb=La;
※可使用对象数组; Location arrLoc[3];
※可使用指向对象的指针,使用取地址运算符将一个对象的地址置于该指针中; Location Pa;
Location *Pb=&Pa;
※对象可以用做函数的参数,这是参数传递采用传值方式。 void display(Location loc)
※一个对象可以用做另一个对象的成员
#include <iostream.h> #define RUN void main()
{int x=1,y=2,z=3; #ifdef RUN
cout<<"x="<<x<<",y="<<y<<",z="<<z <<endl; #endif
cout<<"x*y*z="<<x*y*z<<endl; }
三、说明类的方法:
(1) class 类名{ private:
私有数据和函数 public:
公有数据和函数 protected:
保护数据和函数 };
类声明有关事项:
※访问权限:类的成员所具有的属性。
private只能被类中成员函数引用,类外不能调用。
public可以被本类中成员函数引用,也可以被类的作用域的其它函数引用。 protected不能被类外访问,但可以被派生类的成员函数访问。
※如果在类的定义中既不指定private,也不指定public,则系统就默认为私有的。 ※类中说明的任何成员不能使用extern、auto和register ※不能在说明对象成员使用表达式进行初始化。 例:
class Location { private:
int X=25,Y;//错误的表达方式 };
1、成员函数的性质
(1)它与一般的函数的区别只是:它是属于一个类的成员,出现在类体中。
(2)在使用类函数时,要注意调用它的权限。
(3)一般的做法是将需要被外调用的成员函数指定为public,它们是类的对外接口。
2、在类外定义成员函数
(1)使用作用域运算符“::”
(2)用作用域运算符来说明所声明的函数属于哪个类的。
(3)类函数必须先在类体中原型声明,然后在类外定义。
(4)对类体内定义的函数,默认为内联函数(函数代码嵌入程序的调入点)。
※类外定义成员函数
class Student
{
public:
void display();
private:
int num;
string name;
char sex;
};
void Student::display()
{ cout<<“num:”<<num<<endl; cout<<“name:”<<name<<endl; }
Student stud1,stud2;
四、访问对象中的成员可以有3种方法:
(1)通过对象名和成员运算符访问对象中的成员;
访问对象的一般形式为:
对象名.成员名
例:stud1.display( );
(2) 通过指向对象的指针访问对象的成员;
例:
class Time
{
public:
int hour;
int minute;
};
Time t,*p;
p=&t;
cout<<p->hour;
(3)通过对象的引用变量访问对象中的成员;
例:
class Time
{
public:
int hour;
int minute;
};
Time t1;
Time &t2=t1;
cout<<t2.hour;