最近偶尔不经意的翻起了曾经的C++ ,它是多么的熟悉又是多么的陌生
看到类的第一类函数就是构造函数,看到他的默认类型是public,我在想能不能将其变成private类型,然后想为什么要把变成private,有什么作用么?
在以前书中好像曾经提到过类的构造函数好像是公共类型的,一般构造函数虽然可以设置为公共函数但是不可以被外界显示调用,这是一个很奇葩的事吧,
我个人认为让构造函数私有化,不能自己自动生成类的对象,主要目的还是让创建对象在类中自己实现,不能在外部实例化,又想了想,这种功能到底会在
什么场合会用上呢?
而在单实体模式中,我也可以用到私有构造函数
public class A
{
private A(){}
private static A m_a;
public static A Instance
{
get
{
if(m_a==null)
{
m_a=new A();//自己内部new
}
return m_A;
}
}
用法其实很多,主要目的就是避免外部构造此类
关于第二个问题就是想到这个有没有虚构造函数和虚析构函数的问题,这个问题我感觉必须要了解构造函数和析构函数在什么时候才能去用
,在C++中调用构造函数和析构函数到底有啥用,在底层到底干了什么事,这个问题必须要搞清楚,关于这个问题中的第二个问题就是什么叫做
虚函数,虚函数的作用是啥,虚函数在底层的实现机制是什么,接下来这些问题都是我该想的问题,打开自己的思维开始想,虚基类是类的抽象
,虚函数是函数的抽象,一般的构造函数是对象构造之前调用的,虚函数的目的在于能延迟具体功能的实现,实现多态的机制,这个必须要在对象
已经创建之后,所以产生矛盾,所以没有虚构造函数,但是可以有虚析构函数