The call to function 'func' is also an error because its declaration says it has no arguments. Guideline Always declare the prototype before calling a function. In C, the name of a type defined inside a struct or union is actually in same scope as the name of the enclosing struct or union. There is no guarantee that new and delete apply the same memory management policy to the same memory as do malloc and free. There are various ways to specify the initialization of an object.
Some initializations generate unnecessary temporary objects, and result in larger code size.
In some implementations, this applies a constructor directly to x as above. This initializes x using T's default constructor, then later assigns a new value to x using an assignment operator. The assignment operator may release resources that x is using and acquire new resources. B.2 Inline specifier Note Inline expansion reduces the overhead of function entry and exit, but it may increase code size. Member functions in class definitions are expanded inline by default.