![]() |
#2
rjsp2013-01-08 16:34
|

//De Co+Live
#include <iostream>
using namespace std;
#include <string>
#include <stdlib.h>
//
class sample
{
private:
sample* front;//指向逻辑上前一个对象的指针
sample* next;//指向逻辑上后一个对象的指针
static int iCounter;//计数器 - 有多少个同类对象被创建
int iSerial;//本对象在第几个
public:
sample* lastCreated;//最后一个被创建的对象的地址
sample();
friend ostream& operator<<(ostream&,sample&);//重载<<运算符
};
//
int sample::iCounter=0;//初始化iCounter为0
sample::sample()
{
iCounter++;
if(iCounter==1)
{
front=NULL;
lastCreated=this;
next=NULL;
iSerial=1;
}
else
{
front=lastCreated;
lastCreated->next=this;
lastCreated=this;
next=0;
iSerial=iCounter;
}
}
//
ostream& operator<<(ostream& OUT,sample& SAMPLE)
{
OUT<<"本身第"<<SAMPLE.iSerial<<endl;
OUT<<"总共"<<SAMPLE.iCounter<<endl;
}
//****************************************
//
//main()开始
//
//****************************************
int main()
{
sample sample1;
cout<<sample1<<endl;
sample sample2;
cout<<sample2<<endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
#include <string>
#include <stdlib.h>
//
class sample
{
private:
sample* front;//指向逻辑上前一个对象的指针
sample* next;//指向逻辑上后一个对象的指针
static int iCounter;//计数器 - 有多少个同类对象被创建
int iSerial;//本对象在第几个
public:
sample* lastCreated;//最后一个被创建的对象的地址
sample();
friend ostream& operator<<(ostream&,sample&);//重载<<运算符
};
//
int sample::iCounter=0;//初始化iCounter为0
sample::sample()
{
iCounter++;
if(iCounter==1)
{
front=NULL;
lastCreated=this;
next=NULL;
iSerial=1;
}
else
{
front=lastCreated;
lastCreated->next=this;
lastCreated=this;
next=0;
iSerial=iCounter;
}
}
//
ostream& operator<<(ostream& OUT,sample& SAMPLE)
{
OUT<<"本身第"<<SAMPLE.iSerial<<endl;
OUT<<"总共"<<SAMPLE.iCounter<<endl;
}
//****************************************
//
//main()开始
//
//****************************************
int main()
{
sample sample1;
cout<<sample1<<endl;
sample sample2;
cout<<sample2<<endl;
system("pause");
return 0;
}
思路就是想定义一个sample类,若新建一个sample类对象a,那么a的iSerial为1,其他指针各自更新;又创建一个sample类b对象,b就排在第二,a.next就指向b,如此往复,就是一个链表。
创建一个对象时还没问题,第二个就有问题了。
求解