C 中怎麼知道函式被呼叫了幾次

2022-12-09 14:36:21 字數 3974 閱讀 8012

1樓:陳宗權

如果只需要統計一個函式,可以在那個函式之前增加如下函式:

static int counter(bool get=false)這樣,在你要統計的函式的第一行前加上呼叫

counter();

就會自動進行統計了。

最後想知道統計結果,只需要呼叫

int result = counter(true);

result中就是呼叫次數。當然你也可以輸出:

cout << result << endl;

2樓:匿名使用者

不知道是書沒說明白還是你沒看明白, 總之你完全理解錯了。

所謂只呼叫一次, 是說每個物件的構造當中只呼叫一次。 如果多個物件當然呼叫多次

對比一下虛繼承和非虛繼承的差別:

如果b (非虛,後面就不寫了)繼承a, c也繼承a,d繼承b和c,最終d裡有兩份a的內容,d的物件構造的時候a的建構函式也會被呼叫兩次。

如果 b 虛繼承a , c也虛繼承a, d繼承b和c, 最終d的物件裡只有一份從a繼承下來的東西,d的物件構造的時候a的建構函式也只呼叫一次

3樓:匿名使用者

在函式中加一條輸出語句,看看輸出幾次那條語句就可以了,比如加一條cout<<"ok"<

4樓:

定義一個全域性變數並初始化0,以後每呼叫一次某個函式,這個全域性變數就加1. 最好這個全域性變數的大小就是那個函式被呼叫的次數。

5樓:匿名使用者

int a=1; //全域性或靜態

6樓:匿名使用者

static int i=1; //全域性或靜態

7樓:匿名使用者

把建構函式與解構函式隱藏是在沒有過載建構函式與解構函式的時候。 如果規定解構函式與解構函式不能隱藏,那當你過載構造/解構函式的時候可能會混亂。

其次,建構函式和建構函式是系統自己預設的一定要呼叫的函式,尤其是解構函式,所以隱藏起來比較符合思維習慣,有點「看不見的手」的意思

8樓:天澪萃夢

函式內部定義一個靜態變數

9樓:

不知道有沒有什麼內部的機制,不過在呼叫的時候,做個計數器累加就可以實現了吧

10樓:黃老邪傳人

我記得好像以前用過全域性變數

11樓:匿名使用者

加一句標誌性語句!!!

c++中什麼情況下會自動呼叫建構函式,怎麼計算呼叫次數?

12樓:糖二灰

當你建立這個類的物件或者這個類的子類的物件的時候就會呼叫這個類的建構函式。

建構函式只有在建立物件或者子類物件的時候才會呼叫,其他時候都是不會呼叫的。

13樓:匿名使用者

構造物件的時候。可以這樣做:

class a

//...

};int a::constructtime = 0;

c++語言中怎樣通過呼叫函式來判斷一個數是否是質數,

14樓:匿名使用者

#include "stdafx.h"

#include

using namespace std;

bool fun(int i)

}void main()

15樓:匿名使用者

#include

using namespace std;

bool isprime(int x)

int main() {

int n;

cin>>n;

if(isprime(n)) cout<<"yes"

**:網頁連結

16樓:匿名使用者

void main()

void qiusushu()

while(!(n1>0&&n1

if(n1==1||n1==2) /*處理素數2*/for(i=n1;i<=nm;i++) /*判定指定範圍內的整數是否為素數*/}}

17樓:匿名使用者

booltool(intx)

if(x <= 1)

returnfalse;

if(x % 2 == 1)

for(inti = 3; i < x; i++)

if(x % i == 0)

returnfalse;

returntrue;

returnfalse;

c++中函式先定義再呼叫的幾種情況??

18樓:

c語言函式基本特性:所有函式都必須先定義,在呼叫。不可能存在還沒有定義,就呼叫的情況

你所看到的直接呼叫的唯一情況是呼叫庫函式,但其實那也同樣是先定義了的。

19樓:匿名使用者

函式當然是先定義才能呼叫啊,沒定義的函式怎麼能呼叫。

20樓:平填真杯具平男

你可以先宣告

但是無論在哪兒,一定要有定義

沒什麼幾種情況

c++中直接控制到計時器的語句有哪些?比如設定一個程式執行多久而不是多少次的。需要呼叫什麼函式?

21樓:匿名使用者

延時函式,設定多條空語句

22樓:earth塵林

要用time.h標頭檔案

c++中 如何讓for 迴圈體中的某一條語句(或某一個函式)只執行一次?

23樓:火舞蝶衣

你可以在迴圈體外面設個bool型別

然後在迴圈體裡搞個if,裡面bool型別改下狀態例:bool once = true;

for (;;)}

24樓:匿名使用者

for(i=0;i<10;i++)

給他一個終止命令即可。

25樓:匿名使用者

for(int i=0;i < n;i++)}

26樓:匿名使用者

int flag = 0;

for (....)}

27樓:匿名使用者

for(int i=0;i<10;i++)}

c++裡面計算一個數的冪的函式是什麼

28樓:匿名使用者

在math.h裡面定義的pow()函式。

呼叫方法為pow(底數,指數); 底數、指數、返回值都是double型的。

如計算 9 的3/4次方:y = pow ( 9.0 , 3/4 );

29樓:匿名使用者

#include

pow(float x,float b)即表示x的b次方.

c 中解構函式中可以呼叫虛擬函式麼

c 中 解構函式中不可以呼叫虛擬函式。effective c 中有這樣的描述 同樣的原因也適用於析構過程。一旦派生類解構函式執行,這個物件的派生類資料成員就被視為未定義的值,所以 c 就將它們視為不再存在。c 中派生類在構造時會先呼叫基類的建構函式再呼叫派生類的建構函式,析構時則相反,先呼叫派生類的...

關於C語言被呼叫函式的宣告問題!高手都進來看一下哈

不同編譯器處理不同的。在vc 6.0環境下,如果返回型別是int型別確實可以不宣告,你的程式可以無誤通過。但是建議只要用到自定義函式都宣告下,於人於己都方便 include include int strin len char str void main 這樣就不用在main 中宣告 因為程式由上至...

c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf n ...