4 回答

TA貢獻1843條經(jīng)驗 獲得超7個贊
必須先創(chuàng)建一個bookmanger副本,然后用
bookmanger bm;
bm.add()
或者
bookmanger *bm = new bookmanger();
bookmanger->add()調(diào)用。
注:這個要看類的名稱的,調(diào)用時就像結(jié)構(gòu)體一樣,先用類引申一個對象就像Pid pid ; 調(diào)用時用對象名稱,函數(shù)名就行了。
擴展資料:
如果想調(diào)用重載的C++函數(shù),則須封裝單獨的接口共C調(diào)用。
// C++ Code
void foo( int x );
void foo( float x );
extern "C" void foo_i( int x )
foo( x );
extern "C" void foo_f( float x )
foo( x );
則C中可這樣調(diào)用
// C Code
void foo_i( int x );
void foo_f( float x );
void ccc( int x1, float x2 )
foo_i( x1 );
foo_f( x2 );
// ...

TA貢獻1876條經(jīng)驗 獲得超5個贊
void *p;它定義的不是指向void函數(shù)的指針,而是無類型指針
在C語言中規(guī)定,一個函數(shù)總是占用一段連續(xù)的內(nèi)存區(qū), 而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。 我們可以把函數(shù)的這個首地址(或稱入口地址)賦予一個指針變量, 使該指針變量指向該函數(shù)。然后通過指針變量就可以找到并調(diào)用這個函數(shù)。 我們把這種指向函數(shù)的指針變量稱為“函數(shù)指針變量”。
函數(shù)指針變量定義的一般形式為:
類型說明符 (*指針變量名)();
其中“類型說明符”表示被指函數(shù)的返回值的類型?!?* 指針變量名)”表示“*”后面的變量是定義的指針變量。 最后的空括號表示指針變量所指的是一個函數(shù)。
所以你要改成
#include <iostream>
using namespace std;
void *v;
void *hello(){
cout << "hello world!" << endl;
return v;
}
void main(){
void *( *p)();
p=hello;
p();//這里為什么樣不輸入hello world呀?
}
我很疑惑,hello函數(shù)為什么要返回一個全局無類型指針變量
其實則樣就可以
#include <iostream>
using namespace std;
void hello(){
cout << "hello world!" << endl;
}
int main(){
hello();
return 0;
}
不過如果你用的是Dev-c++就不行,它不支持void類型函數(shù)

TA貢獻1796條經(jīng)驗 獲得超4個贊
#include <iostream>
using namespace std;
void *hello(){
cout << "hello world!" << endl;
return 0;
}
int main(){
hello();
return 0;
}
hello這個函數(shù)可以直接輸入,沒有必要將它再賦給一個指針P,而且你定義的那個指針v我也不知道它是干嘛用的,類型還是void類型,很奇怪啊,void一般是定義函數(shù)類型,而不是定義變量類型的

TA貢獻1827條經(jīng)驗 獲得超4個贊
按照函數(shù)定義去調(diào)用就可以了。
實例:#include <iostream>
using namespace std;
void printstar(void)
{
cout<<"**********star****************"<<endl;
}
void print_message(void)
{
cout<<"Hello World!"<<endl;
}
int main(void)
{
printstar();//調(diào)用
print_message();//調(diào)用
printstar();//調(diào)用
return 0;
}
- 4 回答
- 0 關(guān)注
- 1005 瀏覽
添加回答
舉報