当前位置:编程学习 > C/C++ >>

c++的拷贝构造函数的多文件问题

定义一个类放在一个头文件中名字叫point.h,而把类的拷贝构造函数放在源文件point.cpp中,用#include "point.h"这个头文件放在main.cpp应用程序中,请问只包含这个头文件,在程序中如果实现拷贝构造函数,能不能实现,因为类的拷贝构造函数的实现放在point.cpp中,请说下原因???
追问:那如果我把你上面的程序aaa.cpp,bbb.cpp改成aaa.h,bbb.h,也就是把程序写成头文件里,然后用在ccc.h中包含void go1();void go2();在主函数中会不会出错??为什么??
答案:这个是可以的。

你要注意头文件的作用,它的存在主要就是为了代码分离,实现核心代码隐藏。也就是说使用的时候只需要包含.h文件就行,系统知道该如何找到对应的函数实现。

要注意的是头文件只是一个接口,与cpp可以是一对一、一对多、多对一、多对多的关系。

举个例子

aaa.cpp内容如下:

--------------------------------------------

#include <iostream>
using namespace std;
void go1()
{
cout << 1 << endl;
}

bbb.cpp内容如下:

-----------------------------------------

#include <iostream>
using namespace std;
void go1()
{
cout << 1 << endl;
}

ccc.h内容如下:

---------------------------------

void go1();

void go2();

main.cpp内容如下:

--------------------------------

#include "ccc.h"
int main()
{
go1();
go2();
return 0;
}

以上四个文件,这样相互组合能不能运行呢?

答案是肯定的。

这个例子足以证明:

.h与.cpp没有名称和数量上的关联,也就是说,在这个工程里的所有cpp函数,都可以通过一个或者若干个头文件传递给main函数。

.h文件所要做的,仅仅是把各个函数的声明收集起来,在被main.cpp或者其他的cpp包含即可,至于其内的各个函数到底在什么位置,是没有必要关心的。同样,你可以把所有的函数写到一个cpp中,而用多个头文件进行分割,原理是相同的。

上一个:VC++上怎么用C++实现多线成?
下一个:谁会用visual studio 2008编写c++程序?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,