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呀?
}
详细帮我讲下关于函数调用问题,谢谢!!

必须先创建一个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 );

// ...



温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-30
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类型函数

还有不会的可以百度上交谈本回答被提问者采纳
第2个回答  2014-11-02
如果是系统的类的函数,需要在前面加上:: ,
如果是你使用的类中的函数,在类中使用时,直接调用,函数名(实参) ,
其它类中使用,先声明实例, 类名 dlg, dlg.函数().
如果不在类中,只是当前文档中使用,直接函数名就OK。。。
第3个回答  推荐于2017-09-07
按照函数定义去调用就可以了。
实例:#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个回答  2010-08-16
#include <iostream>
using namespace std;

void *hello(){
cout << "hello world!" << endl;
return 0;
}

int main(){
hello();
return 0;
}
hello这个函数可以直接输入,没有必要将它再赋给一个指针P,而且你定义的那个指针v我也不知道它是干嘛用的,类型还是void类型,很奇怪啊,void一般是定义函数类型,而不是定义变量类型的

关于C++中函数调用的执行过程
C++中函数调用的执行过程有六步:1、参数传递:将函数参数压栈:mov eax,dword ptr [n] ;(n为参数变元)。2、操作:将帧指针压入栈中:push ebp;使得帧指针等于栈指针:mov ebp,esp;使栈指针自减,自减得到的内存地址应当能够(足够)用来存储被调用函数的本地状态:sub esp,0CCh。3、传入...

求解,c++中定义函数的时候怎么调用库函数~~~谢了!
1、使用#include “路径” 包含头文件 2、使用#pragma commentj(lib,"路径") 包含lib文件 3、将dll文件拷贝到exe同目录下。4、Enjoy!

c++如何直接调用自己写的类中的函数,就像调用标准库中的函数那样
如果想要在C++里调用成员函数(包括虚函数),需要提供一个简单的包装(wrapper)。例如:\/\/ C++ code:class C{ \/\/ ... virtual double f(int);}; extern "C" double call_C_f(C* p, int i) \/\/ wrapper function{ return p->f(i);}然后,你就可以这样调用C::f():double ...

C++中怎么调用函数?
必须先创建一个bookmanger副本,然后用 bookmanger bm;bm.add()或者 bookmanger *bm = new bookmanger();bookmanger->add()调用。注:这个要看类的名称的,调用时就像结构体一样,先用类引申一个对象就像Pid pid ; 调用时用对象名称,函数名就行了。

c++中类内的函数怎么调用
如果你一定要用类名来调用,可以定义函数为static:static void bookmanger::add()。函数中的manager拼错了,应该是bookmanager。c++构造函数:C++用以初始化对象的数据成员的一种函数。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的...

C++函数调用方式有哪些
在高级语言中,就是通过函数的调用方式来说明这两个问题的。常见的调用方式有:stdcall cdecl fastcall thiscall thiscall naked call 下面就分别介绍这几种调用方式:1. stdcall stdcall调用方式又被称为Pascal调用方式。在Microsoft C++系列的C\/C++编译器中,使用PASCAL宏,WINAPI宏和CALLBACK宏来指定函数...

C++怎么显式调用调用重载后的运算符函数
1 调用全局函数 2 调用本类自己的函数 3 调用父类的函数 对于全局的运算符重载 可以使用下面的方式调用 ::operator运算符(操作数...);对于本类的运算符可以使用下面的方式调用 classA::func(){ operator运算符(操作数...);} 对于本类需要调用父类的运算符,可以使用下面的方式调用 classA::func...

C++中 主函数怎么调用其他函数
在main函数前给出声明和定义并在main函数中调用 void fun(){}int main(){ fun(); return 0;}在main函数前给出声明,定义在main函数之后,在main函数中调用 void fun();int main(){ fun(); return 0;}void fun(){}

c++编程 在main方法里调用一个类的函数时的格式是什么?
如果是类的静态的函数,就是前面有static的,可以直接用类名::函数名的方式调用,如果是其他的就要定义一个类的对象或者类的指针,如果是类的对象,就可以用类名 .函数名的形式调用,如果是类的指针,就要通过指针名->函数名的形式调用!

linux c++ 怎么 调用自己函数的
生成的文件中打开“libmyFunc.h”可以看到一行:extern LIB_libmyFunc_CPP_API void MW_CALL_CONV myFunc(int nargout, mwArray& C, const mwArray& A, const mwArray& B);这 个就是我们的myFunc.c函数待会儿在c++中调用时的接口。有4个参数,第一个是参数个数,第二个是用来接收函数返回值的...

相似回答