1,写一个类,构造函数可写可不写(不写也没事,系统会有个隐藏的无参数构造函数,写了也没事)
public class myClassName
{
}
//在其它地方实例化
myClassName my=new myClassName()
2,要是想在其他地方引用带参数初始化myClassName my=new myClassName("aaa")
这时候只添加一个带参数的构造函数是错误的,还需要把没参数的构造函数也写出来public class myClassName
{
public myClassName() {}
public myClassName(string name){}
}
就是你不写构造函数,系统会默认给补一个隐藏的无参数构造函数,但是只要写了构造函数,系统就不管了默认了,就要把无参数的构造函数也写出来
这里面涉及到对语言的理解,可以这么说,C++ 里面的所有类都有构造函数。
但是你写的时候可以不写构造函数,但你构造出来的类还是有构造函数。
这是因为你不写构造函数的话,其实 C++ 会自动的帮你加上一个构造函数,这个就是默认的构造函数。
再贴一段百科的定义你就懂了:
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。
在一个类中如果你不写构造函数,是有一个默认的构造函数的。如果你写了一个有参的构造函数,那么系统将不提供这个无参数的构造函数,此时我们建议自己手动添加这个无参数的构造函数。
因为在有些方法调用的过程中,会调用这个无参数的构造函数,这样就会出现错误!
为了避免这种错误的发生,我们手动添加这个无参数的构造函数!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)