// Time-stamp: "07.01.06 04:54 t.cpp klaus@wachtler.de"
#include <iostream>
#include <stdexcept>
template <class T, int N> class Feld
{
private:
T f[N];
public:
T&operator[]( long index )
{
if( index<0 || index>=N )
{
throw( std::runtime_error( "so gehts nicht!" ) );
}
return f[index];
}
};
int main( int nargs, char **args )
{
try
{
Feld<int,10> meinFeld;
meinFeld[20] = 12;
}
catch( std::exception &error )
{
std::cerr << error.what() << std::endl;
}
} // main( int nargs, char **args )
TODO: Spezialisierungen möglich! [Cline: C++ FAQs] 25.03
TODO: Defaultparameter:
// Time-stamp: "07.01.06 05:01 templdefltclass.cpp klaus@wachtler.de"
#include <iostream>
#include <stdexcept>
using namespace std;
template <class T, int N=10> class Feld
{
private:
T f[N];
public:
T&operator[]( long index )
{
if( index<0 || index>=N )
{
throw( std::runtime_error( "so gehts nicht!" ) );
}
return f[index];
}
};
int main( int nargs, char **args )
{
try
{
Feld<int,10> meinFeld;
meinFeld[20] = 12;
}
catch( std::exception &error )
{
std::cerr << error.what() << std::endl;
}
try
{
Feld<int> meinFeld;
meinFeld[15] = 12;
std::cout << meinFeld[5] << std::endl;
}
catch( std::exception &error )
{
std::cerr << error.what() << std::endl;
}
} // main( int nargs, char **args )