FINALTERM EXAMINATION
Spring 2010
CS304- Object Oriented Programming
CS304 - Object Oriented Programming - Q. No: 1  
 Classes like TwoDimensionalShape and ThreeDimensionalShape would  normally be concrete, while classes like Sphere and Cube would normally  be abstract.
 True
 False
CS304 - Object Oriented Programming - Q. No: 2 
 Virtual functions allow you to
 create an array of type pointer-to-base class that can hold pointers to derived classes.
 create functions that can never be accessed.
 group objects of different classes so they can all be accessed by the same function code.
 use the same function call to execute member functions of objects from different classes
CS304 - Object Oriented Programming - Q. No: 3 
 A pointer to a base class can point to objects of a derived class.
 True
 False
CS304 - Object Oriented Programming - Q. No: 4 
 A copy constructor is invoked when
 a function do not returns by value.
 an argument is passed by value.
 a function returns by reference.
 an argument is passed by reference.
CS304 - Object Oriented Programming - Q. No: 5 
 Each try block can have ______ no. of catch blocks.
 1
 2
 3
 As many as necessary.
CS304 - Object Oriented Programming - Q. No: 6 
 Non Template Friend functions of a class are friends of ________instance/s of that class.
 All
 One specific
 All instances of one date type
 None of the given options
CS304 - Object Oriented Programming - Q. No: 7 
 Template functions use _________ than ordinary functions.
 Greater Memory
 Lesser Memory
 Equal Memory
 None of the given options
CS304 - Object Oriented Programming - Q. No: 8  
 The find() algorithm
 finds matching sequences of elements in two containers.
 finds a container that matches a specified container.
 takes iterators as its first two arguments.
 takes container elements as its first two arguments.
CS304 - Object Oriented Programming - Q. No: 9  
 The copy() algorithm returns an iterator to
 the last element copied from.
 the last element copied to.
 the element one past the last element copied from.
 the element one past the last element copied to.
CS304 - Object Oriented Programming - Q. No: 10 
 If you define a vector v with the default constructor, and define  another vector w with a one-argument constructor to a size of 11, and  insert 3 elements into each of these vectors with push_back(), then the  size() member function will return ______ for v and _____ for w.
 11 for v and 3 for w.
 0 for v and 0 for w.
 0 for v and 3 for w.
 3 for v and 11 for w.
CS304 - Object Oriented Programming - Q. No: 11 
 Which is not the Advantage of inheritance?
 providing class growth through natural selection.
 facilitating class libraries.
 avoiding the rewriting of code.
 providing a useful conceptual framework.
CS304 - Object Oriented Programming - Q. No: 12 
 class DocElement
{
public:
 virtual void Print() { cout <
<
};
class Heading : public DocElement
{
public:
 void Print() { cout <
<
};
class Paragraph : public DocElement
{
public:
 void Print() { cout <
<
};
void main()
{
 DocElement * p = new Paragraph();
p->Print();
}
When you run this program, it will print out a single line to the console output.
What will be in that line?
Select one correct answer from the following list:
Generic element
 Heading element
 Paragraph element
 Nothing will be printed.
CS304 - Object Oriented Programming - Q. No: 13 
 Which type of inheritance is being represented by the following statement,
class X : public A, public B { ... ... };
 Single inheritance
 Multiple inheritance
 Double inheritance
 None of the given options
CS304 - Object Oriented Programming - Q. No: 14 
 When we write a class template the first line must be:
 template
 template
 template
Here T can be replaced with any name but it is preferable.
 class class-name()
class template
<
CS304 - Object Oriented Programming - Q. No: 15 
 Function templates should be used where code and behavior must be identical. 
 True
 False
 Rational
This will help us to standardized the codes.
They  are meant for the situations where same functionality can be adapted to  more than one type or class. It will reduce the need of repeating the  entire code for each type.
CS304 - Object Oriented Programming - Q. No: 16 
 Which of the following is/are advantage[s] of generic programming?
 Reusability
 Writability
 Maintainability
 All of given
CS304 - Object Oriented Programming - Q. No: 17 
 The specialization pattern after the name says that this specialization is to be used for every,
 data type
 meta type
 virtual type
 pointer type
CS304 - Object Oriented Programming - Q. No: 18 
 A range is often supplied to an algorithm by two _______ values.
 italic
 iteration
 iterator
 None of given
CS304 - Object Oriented Programming - Q. No: 19 
 Which of the following is an integral part of an object?
 State
 Behavior
 Unique identity
 All of the given
CS304 - Object Oriented Programming - Q. No: 20 
 Consider the following statement
 Cupboard has books
 What is the relationship between Cupboard and books?
 Composition
 Aggregation
 Inheritance
 None of the given options
CS304 - Object Oriented Programming - Q. No: 21 
 Which sentence clearly defines an object?
 one instance of a class.
 another word for a class.
 a class with static methods.
 a method that accesses class attributes.
CS304 - Object Oriented Programming - Q. No: 22 
 ___________, which means if A declares B as its friend it does NOT mean  that A can access private data of B. It only means that B can access  all data of A.
 Friendship is one way only
 Friendship is two way only
 NO Friendship between classes
 Any kind of friendship
CS304 - Object Oriented Programming - Q. No: 23 
 The statement objA=objB; will cause a compiler error if the objects are of different classes.
 True
 False
CS304 - Object Oriented Programming - Q. No: 24 
 Consider the call given below of an overloaded operator "+",
Rational_number_1 + Rational_number_2
Where  Rational_number_1 and Rational_number_2 are the two objects of  Rational_number class (a user defined class). Identify which of the  above two objects will be passed as an argument to the overloaded  operator function?
 Rational_number_1
 Rational_number_2
 Both Rational_number_1 & Rational_number_2
 any of the two objects, randomly
CS304 - Object Oriented Programming - Q. No: 25 
 If a class D has been derived using protected inheritance from class B  (If B is a protected base and D is derived class) then public and  protected members of B -------- accessed by member functions and friends  of class D and classes derived from D
 can be
 cannot be
 does restirct to be
 not given
CS304 - Object Oriented Programming - Q. No: 26 
 In Private -------------- only member functions and friend classes or  functions of a derived class can convert pointer or reference of derived  object to that of parent object
 specialization
 inheritance
 abstraction
 composition
CS304 - Object Oriented Programming - Q. No: 27 ( m a r k s: 2 )
 Give two uses of a destructor.
CS304 - Object Oriented Programming - Q. No: 28 ( m a r k s: 2 )
 Descibe the way to declare a template class as a friend class of any other class.
CS304 - Object Oriented Programming - Q. No: 29 ( m a r k s: 2 )
 Give the name of two basic types of containers collectively called First class containers?
CS304 - Object Oriented Programming - Q. No: 30 ( m a r k s: 2 )
 State any conflict that may rise due to multiple inheritance?
CS304 - Object Oriented Programming - Q. No: 31 ( m a r k s: 3 )
 What will be the output after executing the following code?
class c1{
public:
virtual void function(){
cout<
<
}
};
class c2: public c1{
public:
void function(){
cout<
<
}
};
class c3: public c1 {
public:
void function(){
cout<
<
}
};
int main(){
c1 * test1 = new c2();
c1 * test2 = new c3();
test1->function();
test2->function();
system(“PAUSE”);
return 0;
}
CS304 - Object Oriented Programming - Q. No: 32 ( m a r k s: 3 )
 If we declare a function as friend of a template class will it be a  friend for a particular data type or for all data types of that class.
CS304 - Object Oriented Programming - Q. No: 33 ( m a r k s: 3 )
 Tell the logical error/s in the code given below with reference to  resource management; also describe how we can correct that error/s.
class Test{
public:
int function1(){
 try{
 FILE *fileptr = fopen(“filename.txt”,“w”);
 throw exception();
 fclose(fileptr);
 return 0;
 }
 catch(Exception e){
 ...
 }
}
};
CS304 - Object Oriented Programming - Q. No: 34 ( m a r k s: 5 )
 What is the output produced by the following program?
#include
void sample_function(double test) throw (int);
int main()
{
 try
 {
 cout <
<
 sample_function(98.6);
 cout <
<
 }
 catch(int)
 {
 cout <
<
 }
cout <
<
 return 0;
}
void sample_function(double test) throw (int)
{
 cout <
<
 if(test < 100)
 throw 42;
}
CS304 - Object Oriented Programming - Q. No: 35 ( m a r k s: 5 )
 The code given below has one template function as a friend of a template class,
1. You have to identify any error/s in this code and describe the reason for error/s.
2. Give the correct code after removing the error/s.
template
void Test(U);
template
class B {
 int data;
 public:
 friend void Test( T );
};
template
void Test(U u){
 B b1;
 b1.data = 7;
 }
int main(int argc, char *argv[])
{
 char i;
 Test(i);
 system("PAUSE"); 
 return 0;
}
CS304 - Object Oriented Programming - Q. No: 36 ( m a r k s: 5 )
 Consider the following class,
class Base
{
 char * p;
public:
 Base() { p = new char[10]; }
~Base() { delete [] p; }
};
class Derived : public Base
{
 char * q;
public:
 Derived() { q = new char[20]; }
~Derived() { delete [] q; }
};
void foo()
{
 Base* p = new Derived();
delete p;
}
With this program, every time function foo is called, some memory will leak.
Explain why memory will leak. Also, explain how to fix this problem.