我遇到的c++的一些问题和总结

2008年9月24日 | 分类: 程序设计 | 标签: ,

问题
1。类编译后的结构,诸如this指针,原理是什么。是不是一个对象指针?
2。问题:怎样实现例如telnet一样登录入程序,list显示 程序数据
原理:
1。每个类函数在编译的时候都在其参数后面隐藏加入了this指针,所以类函数也是普通的函数,只不过是c++将他设计的好像是对象的部份,其他纯OO不知道是怎么处理的
2。虚函数就是继承就是多态的最终实现。虚函数指针,和vtable
3。对于虚函数,如果进行对象分割的处理,如果将一个对象强制转换为其父对象,那么他们将执行其父对象的的方法。如果强制转换的仅仅是对象的指针,那么依然执行的是自己的方法。
4。静态成员,必须要初始化,但是不能在构造里面初始化,因为构造有可能要执行很多次。静态成员基本上可以作全局变量来使用。静态方法,因为没 有this指针,所以,不能处理类里面的数据。那么创建一个含有类对象参数的静态方法,并且总是传递this指针进去,会怎么样呢?能不能当作会调呢?

总结:
1。指针使用->操作,对象使用.操作。
2。要回调类函数,办法1.使用c函数的友元(没试过),2.在类函数里使用一个类的静态对象[比如单间模型的_instance],或者传递一个自己类的指针进去(没在项目中使用,测试是能用)
3。只有new出来的变量才有直到delete才中止的生命期,classB b = classB();这样声明的对象在函数结束时会自动释放。
4。char *仅仅是个指针,不管在vector中还是map中也只是一个指向到一个地址的指针,那块地址内容变了,数据也就随之变了,如果在函数内付值,则出了函数,此指针将成为野指针。
5。不要太依赖全局变量,很容易在两个函数中同时使用,造成混乱。不要懒惰,在函数内定义函数需要的变量。
6。将函数的局部变量作为返回值返回时,有指针指向此局部变量,所以此局部变量便依然存在,同时可以设置这个指针以修改局部变量所占用的空间,但是这样操作是不受欢迎的。
7。如果是类使用函数返回了私有变量char的指针,这时在类外部可以修改此私有变量的值
8。使用类成员函数作回调,必须设为static,可以使用此类对象指针作为参数,这样就可以处理类内数据了。

真是啥叉,居然把一个全局变量作为一个参数传递到函数内,而且还在函数内对参数和全局变量进行操作。真晕。。笨死了。【获取dtmf的时候】

anyShare分享到:
          
目前还没有任何评论.