设为首页 加入收藏

TOP

C++中方法定义和调用需要注意的一个地方
2014-11-24 01:22:57 来源: 作者: 【 】 浏览:3
Tags:中方 法定 义和 调用 需要 注意 一个 地方

最近开始认真地再学一下C++编程,陆续会有一些笔记整理出来。


今天要讲的是,C++程序中,方法之间调用的一个需要注意的地方


例如,我们有一个方法


int maxvalue(int a,int b,int c)


{


if(a

if(a

return a;


}


我们需要在另外一个方法里面调用它


int main()


{


int a=5,b=8,c=10;


cout<< maxvalue(a,b,c);


return 0;


}


那么请注意了,maxvalue方法是必须定义在main方法之前的,而不能在后面。


下面的代码能编译通过


#include


using namespace std;


int maxvalue(int a,int b,int c)


{


if(a

if(a

return a;


}


int main()


{


int a=5,b=8,c=10;


cout<< maxvalue(a,b,c);


return 0;


}


而下面的代码则会出现编译错误


#include


using namespace std;


int main()


{


int a=5,b=8,c=10;


cout<< maxvalue(a,b,c);


return 0;


}


int maxvalue(int a,int b,int c)


{


if(a

if(a

return a;


}


当然,也可以将该方法单独定义在一个头文件中,然后Include进来,这个机制与ASP里面是一样的


我们先将如下代码定义为common.h文件


int maxvalue(int a,int b,int c)


{


if(a

if(a

return a;


}


然后修改原先的代码文件


#include


#include "common.h"


using namespace std;


int main()


{


int a=5,b=8,c=10;


cout<< maxvalue(a,b,c);


return 0;


}


#include这个指令其实就相当于是将common.h的内容插入到当前cpp文件的顶部。


那么,为什么同样是include,但有两种写法呢?


#include


#include "common.h"


原因在于,第一个iostream是所谓的标准库(必须用<>包含),而第二个common.h是自定义库(必须用双引号包含)


还有一个问题,如果此时我们的调用方也定义了一个maxvalue方法呢


#include


#include "common.h"


using namespace std;


int maxvalue(int a,int b,int c)


{


return c;


}


int main()


{


int a=5,b=8,c=10;


cout<< maxvalue(a,b,c);


return 0;


}


结果会怎么样?答案是无法通过编译


image


但是,如何解决这样的问题呢?答案是可以为common.h定义一个命名空间,如下


namespace common{


int maxvalue(int a,int b,int c)


{


if(a

if(a

return a;


}


}


这样的话,就可以通过下面的方式来调用该方法呢


#include


#include "common.h"


using namespace std;//这是导入命名空间的语法,与C#是不一样的,多了一个特殊的namespace关键字


int maxvalue(int a,int b,int c)


{


return c;


}


int main()


{


int a=5,b=8,c=10;


cout<< common::maxvalue(a,b,c);//调用common.h中的maxvalue方法,用两个冒号表示命名空间限定符,这与C#也不一样


cout << endl;


cout << maxvalue(a,b,c);//这是调用自己定义的maxvalue方法


return 0;


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇利用CC命令在Unix上编译C程序 下一篇Linux shell菜单编写实例[图文]

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: