在C++中,定义了一个类,建立了对象,对象所调用的函数必须是类函数吗?
可以调用类外的函数吗?
可以调用类外的函数,如:
#include "iostream"
using namespace std;
void printOutSide() {
cout<<"hello"<<endl;
}
int sum(int a,int b) {
return a+b;
}
class Test {
public:
void myFunction() {
printOutSide();
}
void mySum(int a,int b) {
int sumResult = sum(a,b);
cout<<sumResult<<endl;
}
};
int main(){
Test *t = new Test();
t->myFunction();
t->mySum(2,3);
}
不知道楼主指的类外的函数是指什么?
就是类外的普通函数,这个普通函数不在类内声明,不属于类函数,类的具体实例对象可以直接调用吗?能的话如何调用?除了楼上说的那种情况
以上是 网不好 点的多了
楼主应该是说调用自由函数,一般如果是大型工程的话,会将头文件和对应的实现分开放,即将函数声明放在.h头文件里面,函数实现放在cpp文件里面.假设实现了一些具有特定功能的函数,
声明和实现分别放在util.h和util.cpp中。如果要在某个类的实现中调用,只需要在头文件里包含进头文件util.h,就可以直接使用里面定义的函数了。
PS:我觉得楼主如果能了解下编译链接的过程,以及作用域的相关知识,这个问题就变得简单了。