answersLogoWhite

0

A method's return value can be assigned to a variable:

x = myMethod(a, b);

or combined in a more complicated expressions:

result = a + b + myMethod1(c, d);

HOWEVER, it is also possible that the return value is discarded; that is, that the method is invoked, but nothing is done with the return value:

myMethod(a, b);

In this case, if there are different versions of "myMethod()" that only differ in their return value, the compiler won't know which version to use.

User Avatar

Wiki User

13y ago

What else can I help you with?

Continue Learning about Engineering

What are the similarities between constructor overloading and function overloading?

The only similarity is that both constructor and function overloads are distinguished by their signature -- the number and type of their arguments. Functions differ in that they also have a return type, which is also part of the signature, whereas constructors have no return type, not even void.


What is function overloading in c language of computer?

There is no such thing as function overloading in C; that is a feature of C++. Function overloading allows us to provide two or more implementations of the same function. Typically, we use function overloading so that the same function can cater for different types. For instance, we might provide one implementation that is optimised to handle an integer argument while another is optimised to handle a real argument. We can also use function overloading to provide a common implementation of a function which can then be invoked by overloads that handle the low-level type conversions.


What is overloaded subprogram?

subprogram overloading is a process of using the same (function) name for many subprograms. the overloaded subprograms may differ in the number, type or order of its its parameters.java, c++ and c# provides the feature of subprogram overloading . when an overloaded subprogram is called,java or c++ compiler first checks the subprogram name and then the number and type of parameters are analyzed to decide which version of the overloaded subprogram must be chosen for execution. this process is also known as 'polymorphism'. the return type of a subprogram has no affect on subprogram overloading whereas it is used to differentiate between the calls in ADA. hence,two overloaded functions in ADA can have the same parameter profile with different return values.


Why return type is not considered while overloading a function?

YES only if: The return type in the child class is a sub-type of the return type of the parent class. Ex: public int getName() {} - Parent class method public String getName() {} - Child class method If we implement the above two methods in the class hierarchy we will get compilation errors. whereas if we try the below implementation it will work: public Object getName() {} - Parent class method public String getName() {} - Child class method This is because String is a sub-type of Object and hence it works. This is also called as Covariant Overriding. Note: This feature is available only from Java 1.5. Earlier versions of Java expect overriding methods to have exactly the same return type as the super class method.


What is the difference between function prototyping and function overloading?

Function prototypes determine the return type, the name of the function, the argument types expected by the function, and the arity of the function. Function prototyping is used to separate interface from implementation. In C++ all functions must be declared before they are called, thus we use prototypes to provide forward declarations for those functions that have yet to be defined/implemented. We can also use forward declarations for incomplete types such as template functions and classes, however the definition/implementation must be visible to compiler before the function or class is used. In these cases the definitions are typically placed in the same header as the declarations. It is important to note that a definition is also a declaration, and therefore both are also prototypes. The only real difference is that prototypes do not require names for the formal arguments. Even if you provide argument names in your prototypes, they will be ignored by the compiler. The argument names within the definition are the only names of any relevance. Function overloading is where two or more functions share the same name within the same namespace, but have different signatures. The signature of a function is essentially the same as its prototype but excludes the return type, thus overloads cannot differ by return type alone. The compiler uses the function signature to differentiate between your overloads. All function signatures within a namespace must be unambiguous, thus you cannot have two functions with the same name and arguments that are co-variant. For example, the following overloads are invalid because a size_t type is co-variant with unsigned int type, thus the compiler cannot differentiate them. unsigned int max(unsigned int, unsigned int); size_t max(size_t, size_t);

Related Questions

What are the similarities between constructor overloading and function overloading?

The only similarity is that both constructor and function overloads are distinguished by their signature -- the number and type of their arguments. Functions differ in that they also have a return type, which is also part of the signature, whereas constructors have no return type, not even void.


Where do you use no argument no return in c function?

Where there is no need to return any type of value from a function


What is function overloading in c language of computer?

There is no such thing as function overloading in C; that is a feature of C++. Function overloading allows us to provide two or more implementations of the same function. Typically, we use function overloading so that the same function can cater for different types. For instance, we might provide one implementation that is optimised to handle an integer argument while another is optimised to handle a real argument. We can also use function overloading to provide a common implementation of a function which can then be invoked by overloads that handle the low-level type conversions.


How the predecrementer and postdecrementer are taken care of while declaring operator overloading?

When you overload the -- and ++ operators in C++, if you want the pre version, aka --var, simply declare the function without an argument; whereas if you want the post version, aka var--, simply declare the function with an argument of type int. class abc { public: abc& operator++(); // pre-increment form abc& operator++(int); // post-increment form ... }; abc::operator++() { ... pre increment stuff return *this; } abc::operator++(int) { ... post increment stuff return *this; }


What is overloaded subprogram?

subprogram overloading is a process of using the same (function) name for many subprograms. the overloaded subprograms may differ in the number, type or order of its its parameters.java, c++ and c# provides the feature of subprogram overloading . when an overloaded subprogram is called,java or c++ compiler first checks the subprogram name and then the number and type of parameters are analyzed to decide which version of the overloaded subprogram must be chosen for execution. this process is also known as 'polymorphism'. the return type of a subprogram has no affect on subprogram overloading whereas it is used to differentiate between the calls in ADA. hence,two overloaded functions in ADA can have the same parameter profile with different return values.


Why return type is not considered while overloading a function?

YES only if: The return type in the child class is a sub-type of the return type of the parent class. Ex: public int getName() {} - Parent class method public String getName() {} - Child class method If we implement the above two methods in the class hierarchy we will get compilation errors. whereas if we try the below implementation it will work: public Object getName() {} - Parent class method public String getName() {} - Child class method This is because String is a sub-type of Object and hence it works. This is also called as Covariant Overriding. Note: This feature is available only from Java 1.5. Earlier versions of Java expect overriding methods to have exactly the same return type as the super class method.


When an operator works on various type of operands is called?

operator overloading


How can you determine if an argument has weakness in it?

Determine the type of argument and look for potential flaws.


How can you determine if an argument has its weaknesses in it?

Determine the type of argument and look for potential flaws.


What is the difference between function prototyping and function overloading?

Function prototypes determine the return type, the name of the function, the argument types expected by the function, and the arity of the function. Function prototyping is used to separate interface from implementation. In C++ all functions must be declared before they are called, thus we use prototypes to provide forward declarations for those functions that have yet to be defined/implemented. We can also use forward declarations for incomplete types such as template functions and classes, however the definition/implementation must be visible to compiler before the function or class is used. In these cases the definitions are typically placed in the same header as the declarations. It is important to note that a definition is also a declaration, and therefore both are also prototypes. The only real difference is that prototypes do not require names for the formal arguments. Even if you provide argument names in your prototypes, they will be ignored by the compiler. The argument names within the definition are the only names of any relevance. Function overloading is where two or more functions share the same name within the same namespace, but have different signatures. The signature of a function is essentially the same as its prototype but excludes the return type, thus overloads cannot differ by return type alone. The compiler uses the function signature to differentiate between your overloads. All function signatures within a namespace must be unambiguous, thus you cannot have two functions with the same name and arguments that are co-variant. For example, the following overloads are invalid because a size_t type is co-variant with unsigned int type, thus the compiler cannot differentiate them. unsigned int max(unsigned int, unsigned int); size_t max(size_t, size_t);


CAN Overloaded functions can return default values?

I'm not sure I understand you as it wouldn't make sense for a function to return a default value. Do you actually mean can a function return an argument that has a default value? If so, then yes. Any argument passed to a function, whether defaulted or not, can be returned by the same function. If the argument is passed by value then you must return it by value. If passed by reference (which cannot be defaulted) then you can either return by reference or by value. However, if you pass by non-constant reference then you can just use the reference as an output argument, and use the actual return value for some other purpose, such as reporting any error condition(s) created by the function. Overloaded functions are no different to ordinary functions, the only criteria is that each overload has an unique signature. The return value does not form any part of the signature, thus signatures cannot differ by return type alone.


Why method overloading is not possible by return type method?

A method can be used, and the return type discarded. For example, for a method that returns, say, an integer, instead of calling it like this: int x; x = MyMethod(1, 2); You can also call it like this: MyMethod(1, 2); That is, without using the return value. In such a case, if you were to have different methods with the same parameters but different return values, the compiler wouldn't know which version of the method to use.