2 lierming  lierming__ 于 2016.03.28 22:06 提问

C++中的知识点,求解决,在这里先谢谢了
c++

在C++中,定义了一个类,建立了对象,对象所调用的函数必须是类函数吗?
可以调用类外的函数吗?

5个回答

leilba
leilba   Rxr 2016.03.28 22:51

可以调用类外的函数,如:

 #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);

}
qq423399099
qq423399099   Ds   Rxr 2016.03.29 08:38

不知道楼主指的类外的函数是指什么?

lierming__
lierming__   2016.03.29 19:28

就是类外的普通函数,这个普通函数不在类内声明,不属于类函数,类的具体实例对象可以直接调用吗?能的话如何调用?除了楼上说的那种情况

lierming__
lierming__   2016.03.29 19:33

以上是 网不好 点的多了

lifang2005
lifang2005   2016.03.31 19:11

楼主应该是说调用自由函数,一般如果是大型工程的话,会将头文件和对应的实现分开放,即将函数声明放在.h头文件里面,函数实现放在cpp文件里面.假设实现了一些具有特定功能的函数,
声明和实现分别放在util.h和util.cpp中。如果要在某个类的实现中调用,只需要在头文件里包含进头文件util.h,就可以直接使用里面定义的函数了。

PS:我觉得楼主如果能了解下编译链接的过程,以及作用域的相关知识,这个问题就变得简单了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!