C#中基类的构造函数和析构函数为什么不能被继承?

常盼飞


1,构造函数和析构函数不能被继承。构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用而不能被继承。


2,子类的构造函数会显示的调用父类的构造函数或隐式的调用父类的默认的构造函数进行父类部分的初始化。
3、析构函数也一样。它们都是每个类都有的东西,如果能被继承,那就没有办法初始化了。
4 、如果是派生类的对象调用,当然是调用派生类的。
5、 派生类不会没有这些函数的,前面说的六个特殊函数是c++能够自动产生的,也就是说即使你不写这六个函数,c++也会为你补上这六个特殊的函数的默认形式,所以不会出现一个类中没有这些函数的时候。
6 、 我记得复制构造函数的函数名好像是与类名相同的,他其实就是构造函数。只不过形势比较特殊,所以你在调用复制构造函数的时候应该是以类名的形式调用的,这不是跟声明一个类的对象是一样的吗??你在声明一个新的类的对象的时候也不会用到::域操作符吧。把复制构造函数当成构造函数看就可以了,他没什么特殊的,也是构造函数的一种。



分享到:


相關文章: