用java的方式使用C++
首先说一下为什么会写下这片文章,学习过C++的同学都明白,C++编译器在背后隐藏了很多的秘密。
例如:
1、创建一个默认构造方法
2、创建一个默认析构方法
3、创建一个默认拷贝构造方法
4、创建一个默认=运算符
正是因为创建了这几个方法,导致C++对象的生命周期不可预测。
对象在传递的过程中就发生了对象拷贝,在作用域结束的时候,(对象副本)不可避免的被释放了。从而可能导致(对象原本)受到无辜的牵连。
其实这些还是可以预测的,比如,C++自动析构的对象都是处在栈上面的对象,而分配到堆上面的对象,C++是无能为力的,它没有能力主动终结堆上的对象。因为这些对象必须是程序员主动delete。
说到这里就清楚了,尽量把对象创建在堆上,然后通过指针指向这个对象,通过指针使用这个对象。我们可以把这个对象的指针传递到另外的指针,但是不会产生新的对象,整个过程是不是很像Java中的对象引用传来传去。指针传来传去是没有什么危险的,它不会导致对象被终结。
有一点是和Java不一致的,那就是Java会自动释放对象,但是C++不会自动释放new出来的对象,这个时候,这些对象的释放就需要我们自己来管理了。不过这到不是很严重的问题,毕竟自己创建,之后自己释放倒不是什么难事。
关键点就是一个,尽量使用指针传递参数。
学习C++的一个难点就在于它的构造函数,析够函数的原理,掌握了这些就会入门了。
以上是 用java的方式使用C++ 的全部内容, 来源链接: utcz.com/z/393196.html