学习Linux kernel编程及C++记


  对于不是科班,没有学过C++。之前也试图看过,云山雾海,就放弃了。C++只用在VC对付界面和写一些通信程序,反正通信程序也能用C写,尤其在Linux,对我而言就是纯C的环境。C++能做的C都能作,Linux kernel编程等等,协议栈都仍到C。后来也使用JAVA,终于向对象靠拢,也来玩玩C++。

  在做一个通信小程序,涉及XML的解析,那个std::string真的不好用,比java差远了,结果就是弄了个string和const char共有的东东。通用xml解析器很简单,代码不过两百多行,对于具体的应用,打算采用继承的方式来处理,获取具体的参数。下面有几点记录:

  和java不同,C++要牢记释放空间,因此在析构函数(今天才知道这个名字)都对new的类和malloc的空间进行释放。继承类,先执行自己的析构函数,再执行父类的析构函数。

  对于new出来的类,使用delete param的方式,将执行该类的析构函数,并释放空间。开始我以为free(param)就会自动执行析构函数,没有成功,后来在前面加上delete,程序运行出错,因为已经释放空间,不能重复释放。

  如果需要调用父类的函数,使用CBasic::func()的方式,等同于java的super不同。格式上象调用静态函数,有些奇怪。

相关内容