Suppose we define two functions in the program: String test(String str1) and then int test1(int i). Their contents are very simple functions
String test(String str1){
Response.Write("Function overload test, this is a String function");
Return "123232";
}
int test(int i){
Response.Write("Function overload test, this is an int function");
Return
1;
}
When we call test ("Tofu") and test (888), the compiler will not only not report an error, but also execute different results, like this.
Function overloading brings us great convenience in the programming process. We can let the compiler decide to execute different codes according to changes in our parameters. And this is also
One of the main features of object-oriented programming. I believe MS really wants ASP.Net to become the standard for future programming on the Web.
You can change the initialization as you like. Be careful to change the global variables as well. You can change the array length by yourself. I don’t know if the string size is the longest one. This is what I did. If it is to compare the ASCII code size, just change the function. The idea is similar.
#include
#include "string.h"
#define n 3
class Vector
{
public:
Vector(){}
int max(int z[])
{
int maxNumber=z[0];
for(int i=0;i
{
if (maxNumber } return maxNumber; } double max(double z[]) { double maxNumber=z[0]; for(int i=0;i
{ if (maxNumber } return maxNumber; } long max(long z[]) { long maxNumber=z[0]; for(int i=0;i
{ if (maxNumber } return maxNumber; } float max(float z[]) { float maxNumber=z[0]; for(int i=0;i
{ if (maxNumber } return maxNumber; } char* max(char z[3][10]) { char maxNumber[10]; strcpy(maxNumber,z[0]); for(int i=0;i { if(strlen(maxNumber) } return maxNumber; } }; void main() { Vector vt; int a1[3]={1,3,2}; double a2[3]={2.5,7.8,9.3}; long a3[3]={1000,5677,3456}; float a4[3]={1.5f,5.7f,3.8f}; char a5[3][10]={"I","love","china"}; char maxVector[10]={0}; cout
cout
cout
cout
int i=0; strcpy(maxVector,vt.max(a5)); while(maxVector[i]!='\0') { cout
} cout
} /* In your code T_counter& operator =(T_counter x) { this->data=x.data; return *this; } T_counter& operator (T_counter x) { this->data =x.data; return *this; }; If you run c=a b; then c is the value of a b, and a is also the value of a b! */ //Change the code to the following and try it #include using namespace std; template class T_counter { public: T_counter(t a=0) { data=a; } T_counter& operator =(T_counter x) { this->data=x.data; return *this; } T_counter operator (T_counter x) { T_counter y; y.data=this->data x.data; return y; } T_counter operator -(T_counter x) { T_counter y; y.data=this->data-x.data; return y; } T_counter operator *(T_counter x) { T_counter y; y.data=this->data*x.data; return y; } friend ostream & operator{ wocareturn woca; } friend istream & operator >>(istream &input,T_counter & x) { cin>>x.data; return input; } t getdata() { return this->data; } private: t data; }; int main() { T_counter a(5.9),b(6.6),c(0); coutc=a b; coutc=(a-b); coutc=a*b; coutcoutcin>>c; coutsystem("pause"); return 0; }c’s question about overloaded functions in class templates
The above is the detailed content of How to explain function overloading in C. For more information, please follow other related articles on the PHP Chinese website!