指针与引述不都是变量本身吗//为什么下面程序输出会一样呢
指针与引用不都是变量本身吗//为什么下面程序输出会一样呢?
------解决方案--------------------
#include <iostream>
using namespace std;
class Ticket{
public:
virtual void printTicket()
{
cout<< "\n ticket" <<endl;
}
};
class Decorator:public Ticket{
Ticket* mticket;
public:
Decorator(Ticket* t){mticket = t;}
void printTicket()
{
if(mticket!=NULL)
{
mticket->printTicket();
}
}
};
class Head:public Decorator{
public:
Head(Ticket* t):Decorator(t){}
void printTicket()
{
cout << "\n head" <<endl;
Decorator::printTicket();
}
};
class Foot:public Decorator{
public:
Foot(Ticket* t):Decorator(t){}
void printTicket()
{
Decorator::printTicket();
cout<<"\n foot"<<endl;
}
};
Ticket t;
Foot f(&t);
Head h(&f);
h.printTicket();
#include "stdafx.h"
#include <iostream>
using namespace std;
class Ticket{
public:
void printTicket()
{
cout<< "\n ticket" <<endl;
}
};
class Decorator:public Ticket{
Ticket mticket;
public:
Decorator(Ticket& t){mticket = t;}
void printTicket()
{
mticket.printTicket();
}
};
class Head:public Decorator{
public:
Head(Ticket& t):Decorator(t){}
void printTicket()
{
cout << "\n head" <<endl;
Decorator::printTicket();
}
};
class Foot:public Decorator{
public:
Foot(Ticket& t):Decorator(t){}
void printTicket()
{
Decorator::printTicket();
cout<<"\n foot"<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Ticket t;
Foot f(t);
Head h(f);
h.printTicket();
return 0;
}
------解决方案--------------------