<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2FClass%2Fref_class</id>
		<title>Visual C++ .NET/Class/ref class - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Visual_C%2B%2B_.NET%2FClass%2Fref_class"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/ref_class&amp;action=history"/>
		<updated>2026-04-29T17:30:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/ref_class&amp;diff=3610&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/ref_class&amp;diff=3610&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/ref_class&amp;diff=3611&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Visual_C%2B%2B_.NET/Class/ref_class&amp;diff=3611&amp;oldid=prev"/>
				<updated>2010-05-26T12:05:39Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==class, ref class, value class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
class       ClassMember  {};&lt;br /&gt;
ref class   RefClassMember {};&lt;br /&gt;
value class ValueClassMember {};&lt;br /&gt;
class Class&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    ValueClassMember  vc;&lt;br /&gt;
    ValueClassMember *pvc;&lt;br /&gt;
    ClassMember       c;&lt;br /&gt;
    ClassMember      *pc;&lt;br /&gt;
    int x;&lt;br /&gt;
    void write() { Console::WriteLine(&amp;quot;Class x: {0}&amp;quot;, x); }&lt;br /&gt;
};&lt;br /&gt;
ref class RefClass&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    RefClassMember    rc;&lt;br /&gt;
    RefClassMember   ^hrc;&lt;br /&gt;
    ValueClassMember  vc;&lt;br /&gt;
    ValueClassMember ^hvc;&lt;br /&gt;
    ValueClassMember *pvc;&lt;br /&gt;
    ClassMember      *pc;&lt;br /&gt;
    int x;&lt;br /&gt;
    void write() { Console::WriteLine(&amp;quot;RefClass x: {0}&amp;quot;, x); }&lt;br /&gt;
};&lt;br /&gt;
value class ValueClass&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    RefClassMember   ^hrc;&lt;br /&gt;
    ValueClassMember  vc;&lt;br /&gt;
    ValueClassMember ^hvc;&lt;br /&gt;
    ValueClassMember *pvc;&lt;br /&gt;
    ClassMember      *pc;&lt;br /&gt;
    int x;&lt;br /&gt;
    void write() { Console::WriteLine(&amp;quot;ValueClass x: {0}&amp;quot;, x); }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class ClassChildClassParent : public Class {};                         &lt;br /&gt;
ref class RefClassChildRefClassParent : public RefClass {};            &lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    Class      _class;&lt;br /&gt;
    RefClass   refclass;                            &lt;br /&gt;
    ValueClass valueclass;&lt;br /&gt;
    RefClass   ^hrefclass    = gcnew RefClass();&lt;br /&gt;
    ValueClass ^hvalueclass  = gcnew ValueClass();&lt;br /&gt;
    Class      *pclass       = new Class();&lt;br /&gt;
    ValueClass *pvalueclass  = &amp;amp; valueclass;&lt;br /&gt;
    Class      &amp;amp;rfclass      = *new Class();&lt;br /&gt;
    ValueClass &amp;amp;rfvalueclass = valueclass;&lt;br /&gt;
    _class.x       = 1;&lt;br /&gt;
    refclass.x     = 1;&lt;br /&gt;
    valueclass.x   = 1;&lt;br /&gt;
    hrefclass-&amp;gt;x   = 1;&lt;br /&gt;
    hvalueclass-&amp;gt;x = 1;&lt;br /&gt;
    pclass-&amp;gt;x      = 1;&lt;br /&gt;
    pvalueclass-&amp;gt;x = 1;&lt;br /&gt;
    rfclass.x      = 1;&lt;br /&gt;
    rfvalueclass.x = 1;&lt;br /&gt;
    _class.write();         &lt;br /&gt;
    refclass.write();       &lt;br /&gt;
    valueclass.write();    &lt;br /&gt;
    hrefclass-&amp;gt;write();    &lt;br /&gt;
    hvalueclass-&amp;gt;write();  &lt;br /&gt;
    pclass-&amp;gt;write();       &lt;br /&gt;
    pvalueclass-&amp;gt;write();  &lt;br /&gt;
    rfclass.write();       &lt;br /&gt;
    rfvalueclass.write();  &lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ref class demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
public ref class MyClass&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    MyClass(String^ name, int age)&lt;br /&gt;
    {&lt;br /&gt;
        Name = name;&lt;br /&gt;
        Age = age;&lt;br /&gt;
    }&lt;br /&gt;
    MyClass(MyClass% myClass)&lt;br /&gt;
    {&lt;br /&gt;
        *this = myClass;&lt;br /&gt;
    }&lt;br /&gt;
    virtual String^ ToString() override&lt;br /&gt;
    {&lt;br /&gt;
        return String::Format(&amp;quot;{0}&amp;quot;s Age is {1}&amp;quot;, Name, Age);&lt;br /&gt;
    }&lt;br /&gt;
    void operator = (MyClass% myClass)&lt;br /&gt;
    {&lt;br /&gt;
        Name = myClass.Name;&lt;br /&gt;
        Age = myClass.Age;&lt;br /&gt;
    }&lt;br /&gt;
private:&lt;br /&gt;
    String^ Name;&lt;br /&gt;
    int     Age;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void myFunc(MyClass param)&lt;br /&gt;
{&lt;br /&gt;
    Console::WriteLine(%param);&lt;br /&gt;
}&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    MyClass myClass1(&amp;quot;M&amp;quot;, 30);&lt;br /&gt;
    MyClass myClass2(&amp;quot;V&amp;quot;, 8);&lt;br /&gt;
    myFunc(myClass1);&lt;br /&gt;
    myClass1 = myClass2;&lt;br /&gt;
    Console::WriteLine(%myClass1);&lt;br /&gt;
    MyClass^ myClass3 = %myClass2;&lt;br /&gt;
    MyClass myClass4 = *myClass3;&lt;br /&gt;
    MyClass% myClass5 = myClass4;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ref class with member string variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Hello&lt;br /&gt;
{&lt;br /&gt;
    String^ greeting;&lt;br /&gt;
    public:&lt;br /&gt;
    void Greet()&lt;br /&gt;
    {&lt;br /&gt;
        Console::WriteLine(greeting + &amp;quot;!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    void SetGreeting(String^ newGreeting)&lt;br /&gt;
    {&lt;br /&gt;
       greeting = newGreeting;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   Hello^ hello = gcnew Hello();&lt;br /&gt;
   hello-&amp;gt;SetGreeting(&amp;quot;Hello World&amp;quot;);&lt;br /&gt;
   hello-&amp;gt;Greet();&lt;br /&gt;
   hello-&amp;gt;SetGreeting(&amp;quot;Howdy&amp;quot;);&lt;br /&gt;
   hello-&amp;gt;Greet();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference and Indirection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class RefClass &lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    int X;&lt;br /&gt;
    RefClass(int x)&lt;br /&gt;
    {&lt;br /&gt;
        X = x;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    RefClass rc(10);&lt;br /&gt;
    RefClass ^o;&lt;br /&gt;
    &lt;br /&gt;
    o = %rc;                &lt;br /&gt;
    Console::WriteLine(o-&amp;gt;X); &lt;br /&gt;
    rc.X = 20;                &lt;br /&gt;
    Console::WriteLine(o-&amp;gt;X); &lt;br /&gt;
    int %i = rc.X;            &lt;br /&gt;
    i = 30;                   &lt;br /&gt;
    Console::WriteLine(o-&amp;gt;X); &lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ref type==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class RefType&lt;br /&gt;
{&lt;br /&gt;
   String^ classname;&lt;br /&gt;
   public:&lt;br /&gt;
   RefType()&lt;br /&gt;
   {&lt;br /&gt;
      classname = gcnew String(&amp;quot;RefType&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
   String^ GetMessage()&lt;br /&gt;
   {&lt;br /&gt;
       return String::Format(&amp;quot;I am a &amp;quot; + classname);&lt;br /&gt;
   }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   RefType^ r = gcnew RefType();&lt;br /&gt;
   Console::WriteLine(r-&amp;gt;GetMessage());&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stack References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;quot;stdafx.h&amp;quot;&lt;br /&gt;
using namespace System;&lt;br /&gt;
ref class Square&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    int Area()&lt;br /&gt;
    {&lt;br /&gt;
        return d * d;&lt;br /&gt;
    }&lt;br /&gt;
    int d;&lt;br /&gt;
};&lt;br /&gt;
void main()&lt;br /&gt;
{&lt;br /&gt;
    Square ^sqr1 = gcnew Square();     &lt;br /&gt;
    sqr1-&amp;gt;d = 2;&lt;br /&gt;
    Console::WriteLine( sqr1-&amp;gt;Area() );&lt;br /&gt;
    Square sqr2;                      &lt;br /&gt;
    sqr2.d = 3;&lt;br /&gt;
    Console::WriteLine( sqr2.Area() );&lt;br /&gt;
} &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>