ISD. Information Systems Development
 | Eng  | Rus  | 
    Home  |   Our clients   |   Our divisions   |   Job offer  |   Samples  |   Testing center  |   C++ questions  |  

Online-test

You can check your knowledge and probability of successful passing through the technical interview on C++, having done the following tasks:


Task 1.

Fill in the compatibility table of C++ class member function modifiers :

static protected inline template<...> explicit throw(...) =0 const  
virtual
  static
    protected
      inline
        template<...>
          explicit
            throw(...)
              =0

Mark a cell, if you consider, that the appropriate combination of modifiers is possible (Intersection of sets of those class methods, for which modifiers are possible, is nonempty.); remove the mark, if you consider, that appropriate combination of modifiers is impossible (Intersection of sets of those class methods, for which modifiers are possible, derivates an empty set). For example, if you consider, that the class function-method cannot be virtual and constant simultaneously, remove a mark in the right upper cell.

If one of two modifiers in a combination requires mandatory realization of some condition for a class method, which the modifier refers to (for example, mandatory presence of some third modifier), the realization of this condition is supposed (for example, presence of the third modifier).

Pay attention, that modifiers "throw(...)", "=0" and "const" are specified in a code not directly before the function, but after the list of its arguments.

The combinations marked with grey colour is what causes difficulties to the tested.


Task 2.

Process of software writing includes implementation of the model, created on analysis and design stages in certain programming language. Though each programming language (including C++) offers a number of ways to realize the same model, for many standard patterns there are specially designed language constructions optimally suitable for these patterns implementation in C++.

The lines of the following table correspond to some of possible relations between two classes A and B, and columns - to variants of these relations realization. In table cells put or remove labels.

Put a label if you think that the corresponding relation between classes can be optimally implemented with that language construction; remove the label, if don't recommend the corresponding relation between classes to be implemented with that language construction.

  A is a public base class for B A is a private base class for B A is a public data field B A is private data field B
A is B
B is A
B uses A
A uses B
A has B
B has A

The grey colour marks combinations, that usually difficult to the examinees.




                                                                               
  |  Up Top of page