关于C++的简单问题

在vc中,一个工程中有多个cpp文件,那么各个cpp之间的关系是怎样的呢,独立的单个cpp又可以干什么呢?

1,在编译阶段,所有的cpp都是独立的(相互不可见),编译器将它们分别编译,经过编译生成各自的目标文件(.o文件);
2,然后链接(linking),将所有的cpp编译生成的目标文件链接成为一个整体,生成.exe的可执行文件。需要注意的是,链接的时候目标文件是相互可见的,所以各个.cpp文件不能定义相同的全局变量,否则编译器会报变量重复定义的错。
3,显然各个不同的cpp执行不同的功能,比如一个工程要完成十个功能,那我就将每个功能分别用.cpp文件实现,这样非常利于代码的阅读和修改;当然,你也可以把所有的cpp合并到一个cpp中,也可以完成同样的功能,那么这个cpp文件就会太大了,各种函数定义乱成一锅粥,程序的可读性非常低。。。
就好比一件事情一个人完成不可能,我就将它交给十个人完成,每个人做一点,这十个人就相当于十个.cpp文件。编译器的工作就是将十个.cpp文件汇总,最终实现这件事情!
祝好~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-15
呃。。。。建议参考c语言程序设计。这东西没法回答,各个CPP之间可以相互调用。就这样啊
第2个回答  2012-05-15
参考c语言程序设计是没有用的,你的去看看vc这个IDE是怎么工作的

关于C++的简单问题
1,在编译阶段,所有的cpp都是独立的(相互不可见),编译器将它们分别编译,经过编译生成各自的目标文件(.o文件);2,然后链接(linking),将所有的cpp编译生成的目标文件链接成为一个整体,生成.exe的可执行文件。需要注意的是,链接的时候目标文件是相互可见的,所以各个.cpp文件不能定义相同的全局变...

关于C++的六个问题,,想请高手帮我看看 加分..
2.C++最难的,最核心的,最重要的是继承和虚函数。而C++比C好用的地方是STL。3.你先了解下new吧,其他的几个你在使用过程中会慢慢体会出来的。4.区分还是要看内存... ...5.隐式类型转换,int x=100;char a=(char)x;这里强制把x转换成了cha,就是显示的。隐式的就是不显示,例如int 100...

C++的几个问题,高手进!
1. 调用有问题 函数是传地址,你调用的时候传了值0 2. 位运算 2|4=6 (倒数2,3位为1) ~3表示二进制最后两位为0其他为1 两者异或只有不同的值才为1 ,所以最后结果应该2^32-5 (我不肯定 自己去实验吧)3. =b0只是赋值,类型还是A &a1=b0则是传进来地址了,其实就相当于类型B 4...

C++基本知识的一些问题,明天考试急需,拜托了
1、都是存在内存静态存储区。静态成员分两种,一种是类静态成员,在类的各个对象之间共享,只保留一份副本;另一种是在函数中的静态成员,只会被定义和初始化一次,函数退出不会销毁内存,下次该函数再调用的时候,静态成员的值是上次函数调用退出时候的值。全局变量在整个程序中均可见,函数中静态成员只...

关于C++的一些题目。
1、C++是从早期的C语言逐渐发展演变来的,与C语言相比,它在求解问题方法上最大的改进是( B )。A. 面向过程 B. 面向对象 C. 安全性 D. 复用性 2、下列关于this指针的叙述中,正确的是( )A.任何与类相关的函数都有this指针 B.类的成员函数都有this指针 C.类的友元函数都...

C++的问题,知道的麻烦教一下,十分感谢
第一步是对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);如果这个步骤成功,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)...

c++基础问题
(3)不合法,整型变量不能赋值给指针。(4)合法,整型变量可以和指针变量相加。注意这句虽然语法没错,但是逻辑是错的。(5)不合法,指针不能赋值给整型变量。(6)不合法,指针变量不能赋值给指针的指针。(7)合法。指针可以互相赋值。(8)合法。整型变量可以相互赋值。总结,相同类型的变量可以...

3个c++的问题
第一题:C,C语言中,struct ST是一个数据类型的名字,NEW是对他起的别名,具体参见typedef的定义。所以选择C。第二题:C选项中,由于整型数和浮点型数内存中编码方式不同,所以输出肯定不会是5.000000,B选项是对的,因为UNION的类型的特征就是这个。第三题:由于无符号数和有符号数的编码方式不同...

请教C++二维数组和指针的简单问题。
第一个题盲点实在是太多了。p的定义呢?a1又是什么?第二题 主要是明白*s[2]这个是什么。其实有两个操作符,一个是解引用操作符*;另外一个是下标操作符[]。查一下优先级吧。应该先是下标操作所以*s[2]变成了*(s[2])。那么s[2]是什么呢?其实由定义char s[4][6]可以明白。s中存放的...

关于C++的某些基础问题。
y+=x--可以这么理解:因为是x--,所以是先把x原来的值拿过来用再减1(因--在后面)。所以先进行:y+=x(即:y=y+x),因为x==5,y==6,所以此时y等于11 然后再进行:x--(即:x=x-1)此时x等于4;最后X+Y就应该等于11+4=15了 这一题目应该是考你运算符优先级和先--跟后--的...

相似回答
大家正在搜