In [[object-oriented programming]], a '''constructor''' (sometimes shorted to '''ctor''') in a class is a special [[method (computer science)|method]] (function) thatcalled canwhen bean usedoject tois create objects of the classdeclared and never has a return type. Constructors are special [[method (computer science)|instance methods]] that are called automatically upon the creation of an [[object (computer science)|object]] (instance of a class). They are often distinguished by having the same name as the [[class (computer science)|class]] of the object they're associated with. Its main purpose is to pre-define the object's [[data member|data members]] and to establish the [[invariant (computer science)|invariant]] of the class, failing if the invariant isn't valid. A properly written constructor will leave the [[object (computer science)|object]] in a 'valid' state.