Шаг 19 - Конструктор копий

Данная возможность позволяет создавать точно такой же класс, используя операцию равенства.

Visual C++.Net
Visual Basic.Net
CSharp

Visual C++.Net

// This is the main project file for VC++ application project 
// generated using an Application Wizard.

#using <mscorlib.dll>

using namespace System;

class  CMyClass
{
public:
	CMyClass();
	CMyClass(int ii);	
	CMyClass(CMyClass& ii);
	int i;
};

CMyClass::CMyClass(CMyClass& ii)
{
	i=ii.i; 
}
  
CMyClass::CMyClass(int ii)
{
	i=ii;
}

// This is the entry point for this application
int main(void)
{
	// TODO: Please replace the sample code below with your own.
	CMyClass cm(5);
	CMyClass ck(0);
	ck=cm;
	Console::WriteLine(ck.i);
	return 0;
}

Visual Basic.Net

Module Module1
	Class CMyClass
		Public Overloads Sub New()
		End Sub

		Public Overloads Sub New(ByRef ii As Integer)
			i = ii
		End Sub

		Public Overloads Sub New(ByRef ii As CMyClass)
			i = ii.i
		End Sub

		Public i As Integer
	End Class

	Sub Main()
		Dim cm As New CMyClass(5)
		Dim ck As New CMyClass()
		ck = cm
		MsgBox(ck.i)
	End Sub
End Module

CSharp

namespace ConsoleApplication2
{
	using System;

	class CMyClass
	{
		public CMyClass()
		{
		}

		public CMyClass(int ii)
		{
			i=ii;
		}

		public CMyClass(CMyClass ii)
		{
			i=ii.i;
		}
		public int i=1;
	}

	public class Class1
	{
		public static int Main(string[] args)
		{
			CMyClass cm  = new CMyClass(5);
			CMyClass ck  = new CMyClass();
			ck=cm;
			Console.WriteLine(ck.i); 
			return 0;
		}
	}
}

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.07.2002