码迷,mamicode.com
首页 > 编程语言 > 详细

C++:成员函数实现在类定义中与在类定义外的区别

时间:2015-05-09 06:30:48      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

//a.cpp
class A{  
    public:  
    int fun(int x){  
    return (x*x+1000);  
    }  
};  
void tt()  
{  }  

//b.cpp
class A{  
    public:  
    int fun(int x);  
};  
void tt();    
int yy()    
{    
    tt();   
    A a;  
    return a.fun(3);    
}  
将它们分别编译后再链接:
技术分享
显示链接错误,因为b.cpp(b.o)中找不到A::fun(int)的引用。
将以上的a.cpp改为如下所示:
class
A{ public: int fun(int x); }; int A::fun(int x){ return (x*x+1000); } void tt() { }
技术分享

再次编译a.cpp,不用再次编译b.cpp,a.o和b.o后链接,显示链接成功。

这样,第一次链接错误的原因就很明显了。

结论: 在类定义中的类成员函数实现有文件内部作用域,而在类定义外部的类实现有的是全局作用域。

 

 

C++:成员函数实现在类定义中与在类定义外的区别

标签:

原文地址:http://www.cnblogs.com/leijiangtao/p/4489215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!