ultimatepp/tutorial/Ntl06/Ntl06.cpp
cxl 0e04c59abc cpp11 branch - committing the merge (rest of it)
git-svn-id: svn://ultimatepp.org/upp/trunk@7048 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2014-03-16 16:35:29 +00:00

40 lines
604 B
C++

#include <Core/Core.h>
using namespace Upp;
struct Number {
virtual double Get() const = 0;
String ToString() const { return AsString(Get()); }
virtual ~Number() {}
};
struct Integer : public Number {
int n;
virtual double Get() const { return n; }
Integer() {}
};
struct Double : public Number {
double n;
virtual double Get() const { return n; }
Double() {}
};
bool operator<(const Number& a, const Number& b)
{
return a.Get() < b.Get();
}
CONSOLE_APP_MAIN
{
Array<Number> num;
num.Create<Double>().n = 15.5;
num.Create<Integer>().n = 3;
DUMPC(num);
Sort(num);
DUMPC(num);
}