Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include<iostream>
- #include<string>
- #include<exception>
- using namespace std;
- template<typename Klic, typename Hodnota>
- class Par{
- Klic _klic;
- Hodnota _hodnota;
- public:
- Par(Klic klic, Hodnota hodnota) :_klic(klic), _hodnota(hodnota){
- }
- //~Par(void);
- Klic& vratKlic();
- Hodnota& vratHodnotu();
- bool operator==(const Par<Klic, Hodnota>& druhy)const;
- bool operator!=(const Par<Klic, Hodnota>& druhy)const;
- };
- template<typename Klic, typename Hodnota>
- Klic& Par <Klic, Hodnota> ::vratKlic(){
- return _klic;
- }
- template<typename Klic, typename Hodnota>
- Hodnota& Par<Klic, Hodnota>::vratHodnotu(){
- return _hodnota;
- }
- template<typename Klic, typename Hodnota>
- bool Par<Klic, Hodnota>::operator==(const Par<Klic, Hodnota>& druhy)const{
- return (_klic == druhy._klic && _hodnota == druhy._hodnota);
- }
- template<typename Klic, typename Hodnota>
- bool Par<Klic, Hodnota>::operator!=(const Par<Klic, Hodnota>& druhy)const{
- return (_klic != druhy._klic || _hodnota != druhy._hodnota);
- }
- ////Parcialni specializace
- template<typename Klic, typename Hodnota>
- class Par<Klic*, Hodnota*>{
- Klic* _klic;
- Hodnota* _hodnota;
- public:
- Par(Klic* klic, Hodnota* hodnota) :_klic(klic), _hodnota(hodnota){
- }
- //~Par(void);
- Klic& vratKlic();
- Hodnota& vratHodnotu();
- bool operator==(const Par<Klic*, Hodnota*>& druhy)const;
- bool operator!=(const Par<Klic*, Hodnota*>& druhy)const;
- };
- template<typename Klic, typename Hodnota>
- Klic& Par <Klic*, Hodnota*> ::vratKlic(){
- return *_klic;
- }
- template<typename Klic, typename Hodnota>
- Hodnota& Par<Klic*, Hodnota*>::vratHodnotu(){
- return *_hodnota;
- }
- template<typename Klic, typename Hodnota>
- bool Par<Klic*, Hodnota*>::operator==(const Par<Klic*, Hodnota*>& druhy)const{
- return (*_klic == *druhy._klic && *_hodnota == *druhy._hodnota);
- }
- template<typename Klic, typename Hodnota>
- bool Par<Klic*, Hodnota*>::operator!=(const Par<Klic*, Hodnota*>& druhy)const{
- return (*_klic != *druhy._klic || *_hodnota != *druhy._hodnota);
- }
- //explicitni specializace
- template<>
- class Par<char*, char*>{
- char* _klic;
- char* _hodnota;
- public:
- Par(char* klic, char* hodnota) :_klic(klic), _hodnota(hodnota){
- }
- //~Par(void);
- char* vratKlic();
- char* vratHodnotu();
- bool operator==(const Par<char*, char*>& druhy)const;
- bool operator!=(const Par<char*, char*>& druhy)const;
- };
- char* Par <char*, char*>::vratKlic(){
- return _klic;
- }
- char* Par<char*, char*>::vratHodnotu(){
- return _hodnota;
- }
- bool Par<char*, char*>::operator==(const Par<char*, char*>& druhy)const{
- return (!strcmp(_klic, druhy._klic) && !strcmp(_hodnota, druhy._hodnota));
- }
- bool Par<char*, char*>::operator!=(const Par<char*, char*>& druhy)const{
- return (strcmp(_klic, druhy._klic) || strcmp(_hodnota, druhy._hodnota));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement