4 回答
TA贡献1843条经验 获得超7个赞
必须先创建一个bookmanger副本,然后用
bookmanger bm;
bm.add()
或者
bookmanger *bm = new bookmanger();
bookmanger->add()调用。
注:这个要看类的名称的,调用时就像结构体一样,先用类引申一个对象就像Pid pid ; 调用时用对象名称,函数名就行了。
扩展资料:
如果想调用重载的C++函数,则须封装单独的接口共C调用。
// 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中可这样调用
// 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条经验 获得超5个赞
void *p;它定义的不是指向void函数的指针,而是无类型指针
在C语言中规定,一个函数总是占用一段连续的内存区, 而函数名就是该函数所占内存区的首地址。 我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量, 使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。 我们把这种指向函数的指针变量称为“函数指针变量”。
函数指针变量定义的一般形式为:
类型说明符 (*指针变量名)();
其中“类型说明符”表示被指函数的返回值的类型。“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。 最后的空括号表示指针变量所指的是一个函数。
所以你要改成
#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函数为什么要返回一个全局无类型指针变量
其实则样就可以
#include <iostream>
using namespace std;
void hello(){
cout << "hello world!" << endl;
}
int main(){
hello();
return 0;
}
不过如果你用的是Dev-c++就不行,它不支持void类型函数
TA贡献1796条经验 获得超4个赞
#include <iostream>
using namespace std;
void *hello(){
cout << "hello world!" << endl;
return 0;
}
int main(){
hello();
return 0;
}
hello这个函数可以直接输入,没有必要将它再赋给一个指针P,而且你定义的那个指针v我也不知道它是干嘛用的,类型还是void类型,很奇怪啊,void一般是定义函数类型,而不是定义变量类型的
TA贡献1827条经验 获得超4个赞
按照函数定义去调用就可以了。
实例:#include <iostream>
using namespace std;
void printstar(void)
{
cout<<"**********star****************"<<endl;
}
void print_message(void)
{
cout<<"Hello World!"<<endl;
}
int main(void)
{
printstar();//调用
print_message();//调用
printstar();//调用
return 0;
}
- 4 回答
- 0 关注
- 962 浏览
添加回答
举报