Суть в том, что к данному конструктору нельзя обратиться из вне. Зачем? Ну, например, отключить конструктор по умолчанию, как результат объект можно будет создать только передав параметры. Смотрим.
Visual C++.Net Ведет себя интереснее всех. Он не выдает ошибку на попытку создания объекта с приватным конструктором, только предупреждение. Ошибку Вы получите, если где-то в программе попытаетесь воспользоваться этим объектом.
Visual Basic.Net
CSharp
Visual C++.Net
#using <mscorlib.dll>
using namespace System;
class CMyClass
{
private:
CMyClass();
public:
CMyClass(int ii);
int i;
};
CMyClass::CMyClass(int ii)
{
i=ii;
}
int main(void)
{
CMyClass cm(5);
CMyClass ck(); // предупреждение
return 0;
}
Visual Basic.Net
Module Module1
Class CMyClass
Private Overloads Sub New()
End Sub
Public Overloads Sub New(ByRef ii As Integer)
i = ii
End Sub
Public i As Integer
End Class
Sub Main()
rem Dim ck As New CMyClass()
Dim cm As New CMyClass(3)
End Sub
End Module
CSharp
namespace ConsoleApplication2
{
using System;
class CMyClass
{
private CMyClass()
{
}
public CMyClass(int ii)
{
i=ii;
}
public int i=1;
}
public class Class1
{
public static int Main(string[] args)
{
CMyClass cm = new CMyClass(5);
//CMyClass ck = new CMyClass();
return 0;
}
}
}