榆林网站建设推广/2345网址导航下载
自引用指针this
this指针类型是成员函数的类型,它指向对象。
不能修改this指针的值,但是可以修改其指向的值。
this指针是一个局部数据
*this代表当前对象本身。
指针
对象指针是指向对象的指针。实际是对象所指的地址。
成员指针是指向成员的指针,只要公有成员能够拥有。
声明:
类型说明符 类名:: *成员指针名;
赋值:
成员指针名=&类名:: 成员名
使用:
对象名. *成员指针名
对象指针名-> *成员指针名
成员函数的指针类似
向函数传递对象
可以传递对象名,则函数外部对象不改变。
可以传递对象的指针,则函数外部对象改变,
可以传递对象的引用。在函数中声明参数时使用&类型名,则传递参数时,传递对象名,但是实际传递的是一个指针。
静态成员
本类所有对象共享的数据和函数,是类的成员,不是对象的成员。
静态成员数据
同类的不同对象都使用该数据成员。
声明:在类中声明,数据成员之前加上static,注意只有在声明时才需要加上static
static 数据类型 静态数据成员名
初始化在类外进行,不是在类的构造函数中进行。
<数据类型><类名>∷<静态数据成员名>=<值>;
访问方式:
<类名>∷<静态成员名>
对象名.静态数据成员
对象指针->静态数据成员
静态成员函数
声明,static只在声明时加。
static 返回类型 静态成员函数名(参数表);
访问
类名::静态成员函数名(实参表)
对象. 静态成员函数名(实参表)
对象指针->静态成员函数名(实参表)
访问全局变量或者类中的静态数据成员。静态成员函数没有this指针,因此无法访问类中的非静态数据成员。
静态成员函数可以在不创建任何对象之前处理静态数据成员。
友元
可以访问好友关系类中的私有成员,友元可以是类或者类成员函数
友元函数
友元函数不是当前类的函数,但是可以访问当前类的所有成员。
声明:在当前类中声明
函数名前加上friend
定义:类外定义按照一般函数,函数名之前不加类目::
类内部定义,前面加上friend
友元函数没有this指针
类成员函数也可以作为另外一个类的友元函数,但是必须先定义这个类。
友元类
比如
class Y {//…};
class X {//…friend Y; // 声明类Y为类X的友元类//…};
Y的所有成员函数都是X的友元函数
友元类不能传递,是单项而不是双向的。
对象成员
一个类的对象是另一个类的成员
类的构造函数用参数表初始化:
X::X(形参表0):对象成员名1(形参表1),…,对象成员名i(形参表i) ,…,对象成员名n(形参表n)
{// …构造函数体
}
``
const使用
常对象
对象名使用const修饰:类名 const 对象名(参数表)
必须有初值,且以后无法修改。
常对象只能调用const的成员函数。
常数据
声明:
const 类型 成员数据名称;
只能使用参数表进行初始化,不能在构造函数内部初始化。
常成员函数
声明:
返回类型 函数名(参数表)const;
定义:
返回类型 函数名(参数表) const { };
只能引用本类中的数据成员,无法修改它们。
调用时不需要加const。
多文件组成
一般一个类放在 类名.cpp中,类的声明放在类目.h中。