Program 1
#include
#include
using namespace std;
class test
{
int value;
public:
test(int v = 0)
{
value = v;
}
int getvalue()
{
return value;
}
};
int main()
{
const test t;
cout
<< t.getvalue();
return 0;
}
Program 2
#include
#include
using namespace std;
class Bbase
{
public:
int fun()
{
cout << "Base::fun() called";
}
int fun(int i)
{
cout << "Base::fun(int i) called";
}
};
class derived: public base
{
public:
int fun(char x)
{
cout << "Derived::fun(char ) called";
}
};
int main()
{
derived d;
d.fun();
return 0;
}
Program 3
#include
#include
using namespace std;
class A
{
public:
A& operator=(const A&a)
{
cout << "A is assignment operator called" << endl;
return *this;
}
};
class B
{
A a[2];
};
int main()
{
B b1, b2;
b1 = b2;
return 0;
}
Output
A is assignment operator called
A is assignment operator called
Program 4
#include
#include
using namespace std;
class test
{
public:
void* operator new(size_t size);
void operator delete(void*);
test()
{
cout<<"\n Constructor called";
}
~test()
{
cout<<"\n Destructor called";
}
};
void* test::operator new(size_t size)
{
cout<<"\n New called";
void *storage = malloc(size);
return storage;
}
void test::operator delete(void *p )
{
cout<<"\n Delete called";
free(p);
}
int main()
{
test *m = new test();
delete m;
return 0;
}
Output
New called
Constructor called
Destructor called
Delete called
No comments:
Post a Comment