成员对象就是类的成员是对象类型,在类当中定义对象。
例1:在类内定义中将另一个类的对象作为成员
// 在类内定义中将另一个类的对象作为成员
#include<iostream>
class A
{
public:
int x;
};
class B
{
public:
class A obj;//或者 A obj
};
void main()
{
class B bobj;
bobj.obj.x=10;
std::cout<<bobj.obj.x<<std::endl;
}
结果输出为:10。
例2:在类内定义一个指向其他类对象实例的指针
// 在类内定义一个指向其他类对象实例的指针
#include<iostream>
class A
{
public:
int x;
};
class B
{
public:
class A *p;//或者 A obj
};
void main()
{
B bobj;
// bobj.p=new A; //位为bobj对象的成员指针p分配存储空间
bobj.p->x=10;
std::cout<<(bobj.p->x)<<std::endl;
delete bobj.p;
}
结果输出为:10。
类中定义的指针变量,指向同一类的对象。
例3:定义类中包括一个指向自身类别的对象的指针,利用这个指针,构成链表
//定义类中包括一个指向自身类别的对象的指针,利用这个指针,构成链表
#include<iostream>
class Node
{public:
int Data;
Node *pnextNode;
};
class Chain
{public:
class Node FirstNode;
class Node *pCurrentNode;
int ChainLength;
};
void main()
{
class Chain MyList;
MyList.ChainLength=0;
MyList.pCurrentNode=&MyList.FirstNode;
for(int i=1;i<10;i++)
{
MyList.pCurrentNode->pnextNode=new Node;
MyList.pCurrentNode=MyList.pCurrentNode->pnextNode;
MyList.pCurrentNode->Data=i;
}
MyList.pCurrentNode->pnextNode=NULL;
MyList.pCurrentNode=MyList.FirstNode.pnextNode;
while(MyList.pCurrentNode)
{
std::cout<<MyList.pCurrentNode->Data<<"->";
MyList.pCurrentNode=MyList.pCurrentNode->pnextNode;
}
std::cout<<"NULL"<<std::endl;
}