Tuesday, 3 December 2019

Sample Programs and Singleton Design Pattern

# include<iostream>
# include<stdio.h>
using namespace std;

class TInstanceCount
{
static int _instanceCount;
public:
TInstanceCount(void)
{
++TInstanceCount::_instanceCount;
}
static int GetInstanceCount(void)
{
return TInstanceCount::_instanceCount;
}
};
int TInstanceCount::_instanceCount=0;

int main(void)
{
TInstanceCount ob1,ob2,ob3,ob4;
int a =ob1.GetInstanceCount();
printf("%d\n",a);
return 0;
}





# include<stdio.h>
# include<iostream>

using namespace std;

class TSingleton
{
private:
int _num1;
int _num2;
private:
TSingleton(const int num1,const int num2):_num1(num1),_num2(num2)
{};
public:
static TSingleton& getInstance(const int num1,const int num2)
{
static TSingleton singletonInstance(num1,num2);
return singletonInstance;
}

void PrintRecord(void)
{
cout<<"Num1 : "<<this->_num1<<endl;
cout<<"Num2 : "<<this->_num2<<endl;
}
};
int main(void)
{
TSingleton& s1=TSingleton::getInstance(500,600);
s1.PrintRecord();
TSingleton& s2=TSingleton::getInstance(100,200);
s2.PrintRecord();
return 0;
}





# include<iostream>
# include<stdio.h>
using namespace std;
class TSingleton
{
int _num1;
int _num2;
static TSingleton* _ptr;

private:
TSingleton(const int num1,const int num2):_num1(num1),_num2(num2)
{ }
public:
static TSingleton* getInstance(const int num1,const int num2)
{
if(TSingleton::_ptr==NULL)
{
TSingleton::_ptr=new TSingleton(num1,num2);
return TSingleton::_ptr;
}

}
void printRecord(void)
{
cout<<"NUm1 : "<<this->_num1<<endl;
cout<<"Num2 : "<<this->_num2<<endl;
}
static void clear(void)
{
if(TSingleton::_ptr!=NULL)
delete TSingleton::_ptr;
TSingleton::_ptr=NULL;
}
};
TSingleton* TSingleton::_ptr=NULL;
int main(void)
{
TSingleton* ptr1=TSingleton::getInstance(100,200);
TSingleton* ptr2=TSingleton::getInstance(500,600);
ptr1->printRecord();
ptr2->printRecord();
TSingleton::clear();
return 0;
}


# include<stdio.h>
# include<iostream>
using namespace std;

int sum(int num1,int num2)
{
return num1+num2;
}
int sub(int num1,int num2)
{
return num1-num2;
}

int menu_list(void)
{
int choice;
cout<<"0.Exit"<<endl;
cout<<"1.Sum"<<endl;
cout<<"2.Sub"<<endl;
cout<<"Enter Choice: ";
cin>>choice;
return choice;
}

void accept_record(int & number)
{
cout<<"Enter Number : ";
cin>>number;
}
void print_record(const int& result)
{
cout<<"Result :"<<result<<endl;
}
int main(void)
{
int choice;
int num1,num2;
while((choice=::menu_list())!=0)
{
int(*ptr)(int,int)=NULL;
int result=0;
switch(choice)
{
case 1:
ptr=&sum;
break;
case 2:
ptr=&sub;
break;
}
if(ptr!=NULL)
{
::accept_record(num1);
::accept_record(num2);
result=ptr(num1,num2);
::print_record(result);
}
}
return 0;
}




No comments:

Post a Comment