Program 1
#include
#include
using namespace std;
class A
{
int aid;
public:
A(int x)
{
aid =
x;
}
void print()
{
cout
<< "A::aid = " <
}
};
class B
{
int bid;
public:
static A a;
B (int i)
{
bid =
i;
}
};
int main()
{
B b(10);
b.a.print();
return 0;
}
Program 2
#include
#include
using namespace std;
class A
{
int id;
static int count;
public:
A()
{
count++;
id
= count;
cout
<< "constructor called " << id << endl;
}
~A()
{
cout
<< "destructor called " << id << endl;
}
};
int a::count = 0;
int main()
{
A
a[2];
return 0;
}
Output
constructor called 1
constructor called 2
destructor called 2
destructor called 1
Program 3
#include
#include
using namespace std;
class A
{
int id;
public:
A
(int
i)
{
id = i;
}
void print ()
{
cout << id << endl;
}
};
int main()
{
A
a[2];
a[0].print();
a[1].print();
return 0;
}
Program 4
#include
#include
using namespace std;
class A
{
public:
void print()
{
cout << "A::print()";
}
};
class B : private A
{
public:
void print()
{
cout << "B::print()";
}
};
class C : public B
{
public:
void print()
{
A::print();
}
};
int main()
{
C
b;
b.print();
}
Program 5
#include
#include
using namespace std;
class base
{
public:
virtual void show()
{
cout<<" In Base \n";
}
};
class derived: public base
{
int x;
public:
void show()
{
cout<<"In derived \n";
}
derived()
{
x =
10;
}
int getX() const
{
return x;
}
};
int main()
{
derived
d;
base
*bp = &d;
bp->show();
cout
<< bp->getX();
return 0;
}
Program 6
#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 7
#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 8
#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 9
#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