关于C++中与类有关的一个简单问题

例如下面这个类:
class abc {
public :
void kind( int k) {t = k ; }
private :
int t ;
} ;
我先定义了k,然后在未定义t的情况下使用了t = k这个语句,为什么不报错呢?
如果在int main ( )函数中先写 k = 5; 再写 int k; 为什么就报错呢?小弟初学C++,可能问题很弱,望各位高手解答一下!
大家理解错我的意思了,我的意思是,C++程序不是自上而下检索代码的吗?当它检索到void kin(int k) {t = k;}的时候,还未定义int t(因为t是在后面的private)定义的,那么检索到这里,它应该报错啊!这不和我后面举的例子(先k=5,然后再int k就报错)一样吗?

编译器会首先确定变量,然后才会去编译函数,编译函数时各个厂家的编译顺序是不同的,有的是从左至右进行编译,有的是从右至左进行编译。
从左到右是先确定函数名称(就是函数地址),然后添加函数参数。
从右到左是先计算函数参数个数和类型,然后确定函数名称(函数地址)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-05
我说下库,分类静态库和动态库,静态库一般是.lib这种格式,linux下则是.o,
一般库是编译之后的产品,会给你一个头文件,告诉你api怎么调用。具体实现则是已经编译好了的。动态库.dll会动态加载,如果内存里已经加载了,就不会重复加载,静态库则是作为应用程序的一部分整合到应用程序里,所以一般都比较大。至于库里面有什么就要看设计的人了
类,一般是头文件声明,然后再.cpp中实现,这样的好处是,你编译之后可以把这个头文件给其他人调用,这个类就成了你自己编写的一个库了。
通常我们说的库,比如标准模板库,这种是由一系列编译后的库文件和供调用的头文件组成
至于书么《c++ primer》
第2个回答  2010-12-04
t已经定义为这个类的私有变量的,不是没有定义的变量。
看这里:
private :
int t ;
第3个回答  2010-12-04
t你定义了的,在private里面定义的。
int main()中当然要报错,使用之前先声明
第4个回答  2010-12-04
对于类里面的每一个对象在定义时都会生成自己的数据成员,也就是t
只有在调用时才会使用类里面的成员函数,而此时数据成员已经存在了
在主函数里面的是自上而下检索
相似回答