programminga general overview tests whether the symbol is undefined if sowe can process the file otherwisewe do not process the file (by skipping to the #endif)because we know that we have already read the file scope resolution operator in the implementation filewhich typically ends in cppccor ceach member function must identify the class that it is part of otherwiseit would be assumed that the function is in global scope (and zillions of errors would resultthe syntax is classname::member the :is called the scope resolution operator signatures must match exactly the signature of an implemented member function must match exactly the signature listed in the class interface recall that whether member function is an accessor (via the const at the endor mutator is part of the signature thus an error would result iffor examplethe const was omitted from exactly one of the read signatures in figures and note that default parameters are specified in the interface only they are omitted in the implementation objects are declared like primitive types in classic ++an object is declared just like primitive type thus the following are legal declarations of an intcell objectintcell obj intcell obj )/zero parameter constructor /one parameter constructor on the other handthe following are incorrectintcell obj intcell obj )/constructor is explicit /function declaration the declaration of obj is illegal because the one-parameter constructor is explicit it would be legal otherwise (in other wordsin classic + declaration that uses the oneparameter constructor must use the parentheses to signify the initial value the declaration for obj states that it is function (defined elsewherethat takes no parameters and returns an intcell the confusion of obj is one reason for the uniform initialization syntax using braces it was ugly that initializing with zero parameter in constructor initialization list (fig line would require parentheses with no parameterbut the same syntax would be illegal elsewhere (for obj in ++ we can instead writeintcell obj intcell obj }intcell obj }/zero parameter constructorsame as before /one parameter constructorsame as before /zero parameter constructor the declaration of obj is nicer because initialization with zero-parameter constructor is no longer special syntax casethe initialization style is uniform