偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何調(diào)用C++函數(shù)?

開發(fā) 后端
下面文章主要介紹下如何在C++程序中調(diào)用C++ 函數(shù),其困難不在于語言本身,而在于熟悉函數(shù)和調(diào)用方法的理解。

在C++的語言中,和一些程序設(shè)計語言中,可以將一段經(jīng)常需要使用的代碼封裝起來,在需要使用時可以直接調(diào)用,這就是程序中所謂的函數(shù),下面就對C++中的如何調(diào)用C++函數(shù)問題進(jìn)行說明。

前陣子被問及一個在 C 中如何調(diào)用C++ 函數(shù)的問題 ,當(dāng)時簡單回答是將函數(shù) 用extern "C" 聲明,當(dāng)被問及如何將類內(nèi)成員函數(shù)聲明時,一時語塞,后來網(wǎng)上查了下,網(wǎng)上有一翻譯C++ 之父的文章可以作為解答,遂拿來Mark 一下。

C++ 函數(shù)聲明為 ``extern "C"'' (在你的 C++ 代碼里做這個聲明),然后調(diào)用它(在你的 C 或者 C++ 代碼里調(diào)用)。例如:

  1. // C++ code:   
  2.  
  3. extern "C" void f(int);   
  4.  
  5. void f(int i)   
  6.  
  7. {   
  8.  
  9.      // ...   
  10.  
  11. }   

當(dāng)然,這招只適用于非成員函數(shù)。如果你想要在 C 里調(diào)用成員函數(shù)(包括虛函數(shù)),則需要提供一個簡單的包裝( wrapper )。例如:

  1. /* C code: */   
  2.  
  3. void f(int);   
  4.  
  5. void cc(int i)   
  6.  
  7. {   
  8.  
  9.     f(i);   
  10.  
  11.    /* ... */   
  12.  
  13.      }   

然后,你就可以這樣調(diào)用 C::f() :

  1. // C++ code:   
  2.  
  3. class C   
  4.  
  5. {   
  6.  
  7.        // ...   
  8.  
  9.        virtual double f(int);   
  10.  
  11. };   
  12.  
  13.     
  14.  
  15. extern "C" double call_C_f(C* p, int i) // wrapper function   
  16.  
  17. {   
  18.  
  19.        return p->f(i);   
  20.  
  21. }   

如果你想在 C 里調(diào)用重載函數(shù),則必須提供不同名字的包裝,這樣才能被 C 代碼調(diào)用。例如 :

  1. /* C code: */   
  2.  
  3. void f_i(int);   
  4.  
  5. void f_d(double);   
  6.  
  7.     
  8.  
  9. void cccc(int i,double d)   
  10.  
  11. {   
  12.  
  13.        f_i(i);   
  14.  
  15.        f_d(d);   
  16.  
  17.        /* ... */   

然后,你可以這樣使用每個重載。

【編輯推薦】

  1. C與C++中標(biāo)準(zhǔn)輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進(jìn)行分配存儲空間
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進(jìn)行C++代碼編制
責(zé)任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2023-11-09 23:31:02

C++函數(shù)調(diào)用

2010-01-21 11:23:58

C++函數(shù)調(diào)用

2010-01-20 14:25:56

函數(shù)調(diào)用

2011-08-22 17:25:31

LuaC++函數(shù)

2021-10-11 11:53:07

C++接口代碼

2010-01-28 10:49:22

C++構(gòu)造函數(shù)

2010-01-25 09:50:58

C++函數(shù)對象

2020-07-31 18:33:56

C++編程語言

2019-08-28 14:21:39

C++C接口代碼

2011-08-22 17:13:00

LuaC++函數(shù)

2011-07-20 16:09:08

C++

2010-01-25 14:00:27

C++類

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-02-04 17:16:33

C++調(diào)用python

2010-01-25 14:43:00

C++構(gòu)造函數(shù)

2010-01-20 14:35:55

C++調(diào)用

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-01-26 10:42:26

C++函數(shù)

2009-08-31 09:21:38

JavaScript調(diào)

2010-01-18 17:38:54

C++虛函數(shù)表
點贊
收藏

51CTO技術(shù)棧公眾號