1樓:匿名使用者
c/c++中的函式原型是指函式宣告的形式:返回值型別 函式名(引數列表);。注意分號是函式原型的組成部分,去掉分號的部分可以稱為函式頭,是函式定義的起始部分。
這裡的引數列表和定義中的列表語法形式相同,其中的引數是形式引數,只需要指定型別,名稱可有可無。形式是以下任意一種: 1.
空——c中表示接受任意引數,c++中表示接受0個引數; 2.「void」——c中接受0個引數,c++中可省略; 3.「型別名 引數名,」,或者以上形式的重複,但末尾不能有逗號;引數名會被編譯器無視,不必和定義一致; 4.
用於c++,表示接受任意引數。函式原型作為宣告,作用是提示編譯器,作為識別符號的函式名,在宣告之後或外部編譯單元/庫檔案存在定義,以抑制編譯器遇到這個識別符號時產生識別符號未定義的編譯錯誤。
原型作為語法技術的提出,出發點就在於這個作用,利用它可以方便地定義互相遞迴的函式,以及引用外部庫檔案的符號。 所以a是符合上面要求的。
c++ 類的定義體中只給出了乙個成員函式的原型,函式實現在類外給出,形式有什麼要求?
2樓:匿名使用者
函式型別 類名:函式名()函式體。望。
基類派生類中函式原型完全相同,就必須設成虛擬函式嗎
3樓:喜相逢
定義虛擬函式的目的是實現執行時的多型,如果你想讓基類的指標或引用能夠在執行時根據所指(或引用)的物件去呼叫基類或派生類的方法,而不是根據基類指標或引用的型別,那你就得用虛擬函式來實現了。
如果不用指標或引用的話,根據物件例項型別(只要不是抽象類)來呼叫基類或派生類的方法,但那不是多型。
c++的慣例:
如果基類和派生類都定義了相同的方法,最好把基類的方法定義成虛擬函式。
4樓:網友
不必須。。。但是想通過基類型別的指標呼叫派生類的函式就得用虛擬函式了。。。
5樓:憶蕭
不是必須,因為這是函式重寫,也是多型性的一種展現。
什麼情況下必須要用函式原型
6樓:網友
假如在函式fun1中要呼叫函式fun2, 而函式fun2又寫在fun1的後面,則在函式fun1中要申明fun2的函式原型。
簡單的就是如果你要在乙個函式中呼叫另外乙個函式,而 呼叫的函式又在前面沒有出現,則必須在這個函式中宣告一下要呼叫的函式。
兩個函式要相同必須滿足什麼條件?
7樓:禾木由
兩個函式要來相同必須滿足的條件是:有源相同的定義域bai、對應法則和值域。
du定義域是指:輸入zhi值的集合。
值域是指:可能的輸出值的集合y。
對應法則:對應法則即是解析式,也可以用影象、**及其他形式表示。
8樓:晴空下的d調
一般說是三點。
1定義域。2對應關係(也就是函式表示式)
3值域也可以說兩點。
1定義域。2對應關係。
9樓:匿名使用者
定義域,值域,對應法則。
10樓:匿名使用者
首先,判斷兩個函式的定義域是否相等(即:是否是同一集合);若是,則判斷對於該集合的每乙個元素,它們對應的函式值是否相等。若是,則它們的對應關係是相等的,即是同一函式。
函式原型和定義的區別?
11樓:霹靂小子夷街
函式原型也叫函式宣告,還叫引用說明。其目的是實現先呼叫函式,後定義函式。 下面舉例說明:
#includevoid fun(int n);/這就是函式原型。 int main() void fun(int n)
12樓:網友
函式原型只是一種宣告, 定義才是計算機真正要執行的內容。 基於封裝的原因, 呼叫時一般只需要原型就可以了, 但是機器執行的時候總要去定義裡的。
c語言 函式原型!!
13樓:網友
包括函式名稱,返回型別,引數列表等。
當你要呼叫乙個函式的時候,就要了解函式原型,否則引數怎麼填寫都不知道。。
14樓:東哥
函式原型:
函式原型能告訴編譯程式乙個函式將接受什麼樣的引數,將返回什麼樣的返回值,這樣編譯程式就能檢查對函式的呼叫是否正確,是否存在錯誤的型別轉換。例如,現有以下函式原型;
int some_func(int,char·,long);
編譯程式就會檢查所有對該函式的引用(包括該函式的定義)是否使用了三個引數並且返回乙個int型別的值。如果編譯程式發現函式的呼叫或定義與函式原型不匹配,編譯程式就會報告出錯或警告訊息。例如,對上述函式原型來說,當編譯程式檢查以下語句時,就會報告出錯或警告訊息:
x = some_func(l); /* not enough arguments passed */
x = somc_funcc*hellol", 1, "dude:"); /* wrong type of arguments used */
x = aome_funcd, sir, 2879, "t"); /* too many arguments passed */
下例中的函式呼叫同樣是不正確的,因為函式some_func()的返回值不是乙個long*型別的值。
lvalue=some_func(1,str,2879); /*some_rune()returns anint,not a long* */
同樣,編譯程式還能檢查函式的定義(或函式體)是否與函式原型匹配。例如,當編譯程式檢查以下函式定義時,就會報告出錯或警告訊息:
int some_func(char *string,longlvalue,int ivalue) /* wrong order of
總之,在原始檔中說明函式原型提供了一種檢查函式是否被正確引用的機制。目前許多流行的編譯程式都會檢查被引用的函式的原型是否已在原始檔中說明過,如果沒有,就會發出警告訊息。
15樓:網友
函式原型就是使用乙個函式前,對乙個函式的預先的乙個宣告,說明下面要用到這樣乙個函式。函式原型一般由函式名、參數列、返回值型別組成。
函式原型不是必需的。如果你對這個函式的完整定義出現在使用這個函式之前,就不需要函式原型了。
char get(int i)這樣乙個函式在使用時,就像這樣呼叫:
c=get(a);
其中a是預先定義好的乙個int,然後函式執行時,a的值就是get函式中的i,get函式中return的值,就賦值給主調函式里的c
什麼是函式原型?
16樓:
函式原型也叫函式宣告,還叫引用說明。其目的是實現先呼叫函式,後定義函式。
下面舉例說明:
#include
void fun(int n);//這就是函式原型。
int main()
void fun(int n)
函式,定義域相同,值域相同,對應法則是否一樣若有不相同
黑體字的是不對的,你可以在座標上任意筐出乙個範圍,在裡面隨便畫什麼函式圖象都可以,顯然不對應 下面的一行字.也是可以不同的.你取乙個2次函式,在對稱軸左邊取和右邊取定義域就不一樣了嘛 y x 2 y x 定義域x屬於r 值域y 0 y x y x 對應法則都是 根號 值域y 0 定義域x 0,x 0...
比如說判斷兩個函式是否相同,定義域相同,當比較對應法則時應該
對應法則是要滿足兩點 值域相同,函式值相等。判斷兩個函式是否相同,要看對應法則和定義域。那麼怎麼寫過程呢?其實就是看解析式是否相同,再看定義域,判斷過程下出來就行,怎麼判斷的就怎麼寫 判斷兩個函式是否相同,定義域和對應關係乙個相同就行是吧 當然不是,要bai 兩個都相同,才是相同的du函式。例如f ...
微積分兩個函式是否相同。為什麼
不相同因為定義域不同,第乙個定義域是r 第二個x不等於 2 k 在高等數學中如何判斷兩個函式是否相同?先求兩函式的定義域和值域,當兩者都相同時再考察對應法則。一般來說兩函式的形 式是不一樣的可以將其中乙個函式作化簡得到與另一函式相同的形式,當然有些比較難的題目是兩個函式都要化簡。總結一下就是滿足函式...