16829_6.operator overloading and type conversion - copy

Upload: rama-sukumar

Post on 10-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    1/12

    Quiz on Operator Overloading

    1) Overloading the function operator(A) requires a class with an overloaded operator.

    (B) requires a class with an overloaded [ ] operator.

    (C) allows you to create objects that act syntactically like functions.

    (D) usually make use of a constructor that takes arguments.

    Ans: A

    2) The operator that cannot be overloaded is(A) ++ (B) ::

    (C) ( ) (D) ~

    Ans: B

    3) Which of the following statements is NOT valid about operator overloading?(A) Only existing operators can be overloaded.

    (B) Overloaded operator must have at least one operand of its class type.

    (C) The overloaded operators follow the syntax rules of the original operator.

    (D) none of the above.Ans:D

    5) Overloading a postfix increment operator by means of a member function takes

    (A) no argument (B) one argument

    (C) two arguments (D) three arguments

    Ans:A

    6) Which of the following operator can be overloaded through friend function?(A) ->

    (B) =

    (C) ( )

    (D) *

    Ans:D

    7) Which of the following statement is valid?(A) We can create new C++ operators.

    (B) We can change the precedence of the C++ operators.

    (C) We can change the associativity of the C++ operators.

    (D)We can not change operator templates.

    Ans:D.

    8) One can change the precedence of an operator when overloading it.

    a) True b) FalseAns: b

    9) When overloading operators, we can also create our own new operators.a) True b) falseAns: b

    10) . Overloading without explicit arguments to an operator function called(A) Binary operator overloading

    (B) Unary operator overloading

    (C) Class allowing access to another class

    (D) None of these

    Ans: b

    11) Can constructors be overloaded?

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    2/12

    a) Yes b)No

    Ans: a

    12) Which of the following is correct about the statements given below?

    1.All operators can be overloaded in C++.

    2.We can change the basic meaning of an operator in C++.(A) Only 1 is true

    (B) Both 1 and 2 are false................

    (C) Only 2 is true

    (D) Both 1 and 2 are true

    Ans: b

    13) . The Associativity of an overloaded operator, however, cannot be changed.

    a) True b) False

    Ans: a

    14)Which of the following operators can be implemented as a nonmember operator?

    a. = (assignment operator)b. () (function call operator)

    c. [] (array access operator)

    d. + (addition operator)

    Ans: d

    15) Which of the following is the correct prototype for an overloaded assignment

    operator over class Student?a) Void operator =();

    b) Void operator = (Student);c) void = (Student);d) void =(const Student&);

    Ans: b

    16) Operator Overloading is example of run time polymorphisma) True b) False

    Ans: b

    17) . Operator overloading is

    (A) making C++ operators works with objects and giving new meaning to existing C++operators

    (B) making C++ operators works with objects

    (C) giving new meaning to existing C++ operators

    (D) making new C++ operator

    Ans: B

    18) In the binary overloaded operator function, second operand should be passed

    a) Excplicitly c)passed by value

    b) Implicitly d) by reference

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    3/12

    Ans: d

    19) The name of the operator function that overloads the * symbol is

    a) operator*()

    b) *operator()

    c) op*()d) *op()Ans: a

    20) Choose the correct remarks

    a) C++ allows any operator to be overloaded.

    b) Some of the existing operators cannot be overloaded.

    c) Operator precedence cannot be changed.

    d) All the above.

    Ans: ( c)

    21) Which of the following operators cannot be overloaded?

    a) The . operator b)The -> operator

    c) The [ ] operator. d) The & operator.

    Ans: a

    22) Which statement about operator overloading is False?

    a) New operators can never be created.

    b) Certain overloaded operators can change the number of arguments they take.

    c) The precedence of an operator cannot be changed by overloading.d) Overloading cannot change how an operator works on built-in types.

    Ans: b

    23) To implicitly overload the += operator:

    a) Only the = operator needs to be overloaded

    b) Only the + operator needs to be overloaded

    c) The += operator cannot be overloaded implicitly.

    d) Both the + and = operators need to be overloaded.

    Ans: c

    24) The conventional way to distinguish between the overloaded pre increment and post

    increment operators (++) is:

    a) To assign a dummy value to pre increment.

    b) To make the argument list of post increment include an int.

    c) To have the post increment operator call the pre increment operator.

    d) Implicitly done by the compiler.

    Ans: b

    25) It is perfectly illegal to overload the dynamic memory allocation operators: new and

    delete.a) True b) false

    Ans: b

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    4/12

    26) All the operator function must be declared as member functions or friend functions

    to classes.a) True b) False

    Ans: a

    27) Overloaded operators can have default arguments.a) True b) False

    Ans: b

    28) Which overloaded operator cannot be inherited by derived classes.

    a) + b) =

    c) > d) *

    Ans: b

    29) When specifying an overloaded operator for the postfix form of the increment or

    decrement operator, the additional argument must be of type

    a) float b) charc) int d) all the above

    Ans: c

    30) To overload a member function of the base class, the name of the function and the

    formal parameter list of the corresponding function in the derived

    class must be same

    a) True b) False

    Ans: b

    31) The comma operator can be overloaded.

    a) True b) False

    Ans: a

    32) The overloaded operator must have at least one operand that is of user defined

    type.

    a) True b) False

    Ans: a

    33) Which of the following operator cannot be overloaded using friend function.

    a) % b) (B) =

    (C) ( ) (D) *

    Ans: d36) If you overload only prefix ++ operator, the postfix ++ operator

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    5/12

    a) does not works b) works arbitrarily

    c) works naturally d) works as if prefix ++ operator.

    Ans: d

    37) The sizeof operator can be overloaded.

    a) True b) falseAns: b

    38) When you overload > gets automatically overloaded.

    a) True b) False

    Ans: b

    39) Each and every operator of c++ can be overloaded.

    a) True b) False

    Ans: b

    40) You can overload unary operators to work like binary operators.

    a) True b) False

    Ans: b

    41) If you do not want to overload the operator, you can achieve the same effect with

    user defined functions

    a) True b) False

    Ans: a

    42) Operator overloading allows us to use the existing operators in new manner.

    a) True b) FalseAns: b

    43) If there were no classes, operator overloading would not be needed.

    a) True b) False

    Ans: b

    44) Operator Overloading can be misused.

    a) True b) False

    Ans: a

    45) If no overloaded operators are provided, c++ automatically provides them.

    a) True b) False

    Ans: b

    46) If we do not use operator overloading, assuming a and b are objects of same class,

    the statement a+=b; is invalid.

    a) True b) False

    Ans: a

    47) We cannot overload stream operators.

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    6/12

    a) True b) False

    Ans: b

    48) Operator overloading is same as function overloading.

    a) True b) FalseAns: b

    49) When we overload the = operator, we want to.

    a) compare two objects b) compare and copy objects

    c) Test for equality d) assign one object to another.

    Ans: d

    50) To overload the user input, we need to overload. operator.

    a)>

    c)< d)>

    Ans: b

    51) To overload user output, we need to overload..operator.

    a)>

    c)< d)>

    Ans: a

    52) To overload less than, we need to overload..operator.

    a) >c)< d)>

    Ans: c

    53) To overload greater than, we need to overload..operator.

    a)>

    c)< d)>

    Ans: d

    54) If a binary operator is overloaded as a member function, how many parameters will

    the member function require?

    a) None. Both the operands are passed via object.

    b) One, to pass the second operand. The first operand is object itself.

    c) Two, to pass the first and second operands.

    d) Three, to pass the first and second operands, and the object on which they were

    called.

    Ans: b

    55) Why is it necessary to be able to overload some operators by specifying a global

    function (rather than a member function)?

    a) Because member functions are inherited

    b) Because member functions are slower than global functions.

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    7/12

    c) Because inbuilt types can't have member functions.

    d) Because sometimes the order of arguments puts an unmodifiable class as the first

    operand

    Ans: d

    56) If both MyClass::operator+ and MyClass::operator= are overloaded, what is the

    effect on MyClass::operator+=?

    a) None. The three operators are completely independent.

    b) MyClass::operator+= will automatically be overloaded to call MyClass::operator+ and

    then MyClass::operator=.

    c) MyClass::operator+= will automatically be overloaded to call MyClass::operator= and

    then MyClass::operator+.

    d) MyClass::operator+= will automatically be made invalid, and the error message will

    suggest that the user use MyClass::operator+ and MyClass::operator= instead.

    Ans; a

    57) Why can we say that operator overloading is a form of polymorphism?

    a) Because overloaded operators can be declared virtual.

    b) Because overloaded operators mean that code like a+b can do different things

    depending on the type of the objects a and b.

    c) Because polymorphism is the technical name for operator overloading.

    d) Because overloaded operators have many (poly) shapes (morphus).

    Ans: b

    58) Why is operator overloading sometimes desirablea) To change the precedence of inbuilt operators for user-defined classes.

    b) To make user-defined classes act more like inbuilt classes (i.e. to make them more

    intuitive to use.

    c) All of the above

    d) None of the above.

    Ans: d

    59) The term overloaded refers toA. an error where more than one method matches a method call

    B. two or more methods in the same class that have the same name

    C. method calls where there are two many actual parametersD. two or more methods in different classes that have the same name

    Ans: b

    60) The operator

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    8/12

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    9/12

    70) During class type to class type conversion ,if the conversion facility is to be included

    in the source class, then

    A) A constructor for conversion is required in source class.

    B) A constructor for conversion is required in the destination class.

    C) Operator function is required in the source class.

    D) Operator function is required in the destination class.

    Ans: c

    71) The prototypes of overloaded cast operator functions do not:

    a) Specify the type they convert to.

    b) Need to be defined inside the class whose objects are being converted.c) Specify the type that is being converted.

    d)Specify a return type.

    Ans: d

    72)For converting int values to an object of class MyNumbera) Constructor with an int parameter must be defined in the class MyNumber.

    b) The conversion function: operator int() must be defined in the class MyNumber.

    c) Both of the above are required to be defined in the class MyNumber.

    d) None of the above is required to be defined in class MyNumber. Some independent non

    member function must perform the conversion

    Ans: a

    73) Conversion or typecasting operator function have.arguments and

    return type.

    a) one; one b) one;no

    c) no;one d) no;no

    Ans: d

    74) As typecast operator does not allow explicit mention of return type, you must not

    use the return statement in the body of the respective typecast operator function.

    a) True b) False

    Ans: b

    75) The operator function used to overload the typecast operation must not mention

    any explicit argument in its header when implemented as member function.

    a) True b) False

    Ans: a

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    10/12

    76) There can be more than one conversion function performing the same operation in

    the program.

    a) True b) False

    Ans: b

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    11/12

  • 7/22/2019 16829_6.Operator Overloading and Type Conversion - Copy

    12/12