Rumah >tutorial komputer >pengetahuan komputer >Bagaimana untuk menerangkan lebihan fungsi dalam C

Bagaimana untuk menerangkan lebihan fungsi dalam C

王林
王林ke hadapan
2024-01-12 11:36:041209semak imbas

Bagaimana untuk menerangkan kelebihan beban fungsi dalam C

Andaikan kita mentakrifkan dua fungsi dalam atur cara: Ujian rentetan(String str1) dan kemudian ujian int1(int i kandungannya adalah fungsi yang sangat mudah

).

Ujian rentetan(String str1){

Respons.Tulis ("Ujian lebihan fungsi, ini adalah fungsi String"

Kembalikan "123232";

}

int ujian(int i){

Respons.Tulis ("Ujian lebihan fungsi, ini adalah fungsi int"

Kembali

1;

}

Apabila kita memanggil test("Tofu") dan test(888), pengkompil bukan sahaja tidak akan melaporkan ralat, tetapi juga melaksanakan keputusan yang berbeza, seperti ini.

Pembebanan fungsi memberi kami kemudahan yang hebat dalam proses pengaturcaraan Kami boleh membiarkan pengkompil memutuskan untuk melaksanakan kod yang berbeza mengikut perubahan dalam parameter kami. Dan yang ini juga

Salah satu ciri utama pengaturcaraan berorientasikan objek. Saya percaya MS benar-benar mahukan ASP.Net menjadi standard untuk pengaturcaraan masa depan di Web.

c fungsi berlebihan

Anda boleh menukar pemulaan mengikut kehendak anda. Berhati-hati untuk menukar pembolehubah global anda juga boleh menukar panjang tatasusunan. Saya tidak tahu sama ada saiz rentetan adalah yang paling panjang Ini adalah yang saya lakukan. Jika ia adalah untuk membandingkan saiz kod ASCII, hanya menukar fungsi.

#include

#include "string.h"

#define n 3

Vektor kelas

{

awam:

Vektor(){}

int maks(int ​​z[])

{

int maxNumber=z[0];

untuk(int i=0;i

{

jika (Nombor maks

}

kembali maxNombor;

}

double maks(double z[])

{

Nombor maks dua kali ganda=z[0];

untuk(int i=0;i

{

jika (Nombor maks

}

kembali maxNombor;

}

panjang maks(panjang z[])

{

Nombor maks panjang=z[0];

untuk(int i=0;i

{

jika (Nombor maks

}

kembali maxNombor;

}

apung maks(apung z[])

{

nombor maks terapung=z[0];

untuk(int i=0;i

{

jika (Nombor maks

}

kembali maxNombor;

}

char* maks(char z[3][10])

{

char maxNombor[10];

strcpy(Nombor maks,z[0]);

untuk(int i=0;i

{

jika(strlen(Nombor max)

}

kembali maxNombor;

}

};

void main()

{

Vektor vt;

int a1[3]={1,3,2};

double a2[3]={2.5,7.8,9.3};

panjang a3[3]={1000,5677,3456};

apung 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));

sementara(maxVector[i]!='

{

cout }

cout }

Masalah C tentang fungsi terbeban dalam templat kelas

/*

Dalam kod anda

T_kaunter& pengendali =(T_kaunter x)

{

ini->data=x.data;

kembali *ini;

}

T_kaunter& pengendali +(T_kaunter x)

{

ini->data+=x.data;

kembali *ini;

};

Jika anda menjalankan c=a+b; maka c ialah nilai a+b, dan a juga ialah nilai a+b!

*/

//Tukar kod kepada yang berikut dan cuba

#include

menggunakan ruang nama std;

template

kaunter T_kelas

{

awam:

T_counter(t a=0)

{

data=a;

}

T_kaunter& pengendali =(T_kaunter x)

{

ini->data=x.data;

kembali *ini;

}

T_kaunter operator +(T_kaunter x)

{

T_kaunter y;

y.data=this->data+x.data;

kembali y;

}

T_kaunter operator -(T_kaunter x)

{

T_kaunter y;

y.data=this->data-x.data;

kembali y;

}

T_kaunter operator *(T_kaunter x)

{

T_kaunter y;

y.data=this->data*x.data;

kembali y;

}

rakan ostream & operator{

wocareturnwoca;

}

rakan istream & operator >>(istream &input,T_counter & x)

{

cin>>x.data;

kembali input;

}

t getdata()

{

kembali ini->data;

}

peribadi:

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("jeda");

kembali 0;

}

Atas ialah kandungan terperinci Bagaimana untuk menerangkan lebihan fungsi dalam C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam