[c++] znak ^ w c++

0

czy mogłby mi ktos wytlumaczyc do czego sluzy znak zawarty w temacie -> ^

public ref class Form1: public Form
{
public:
   Form1()
   {
      TextBox^ tb = gcnew TextBox;
      this->Controls->Add( tb );
      tb->KeyPress += gcnew KeyPressEventHandler( this, &Form1::keypressed );
   }

private:
   void keypressed( Object^ /*o*/, KeyPressEventArgs^ e )
   {
      if ( e->KeyChar == (char)13 )
            e->Handled = true;
   }
};
 

znalazłem cos takiego

http://msdn.microsoft.com/en-us/library/te3ecsc8%28VS.80%29.aspx

z tego co rozumiem w lini
TextBox^ tb = gcnew TextBox;

jest tworzona instancja TextBox umieszczana jest na czyms w rodzaju stosu, a tb jest referencja do niego?

void keypressed( Object^ /*o*/, KeyPressEventArgs^ e )

a to jak działa ? nie bardzo widze info o tym, jezeli jest to jakos dokladnie gdzies opisane to bede wdzieczny za link

0

To nie C++ tylko C++/CLI, odrębny język. ^ to uchwyt, odpowiednik wskaźnika dla typów zarządzanych - z .NET Framework.

0

@deus dzieki
@Nobody jak bys nie zauwazyl to podeslalem link do gcnew

czyli jezeli chce aby program dzialal bez biblioteki .net to mogę po prostu używać po staremu wywołania onclick itp?

czy jakies zalety sa stosowania tego nowego rozwiazania poza lepsza kompatybilnościa z nowymi systemami ?

0

Przecież ten kod jest oparty o WinForms, element .NET. Cały język C++/CLI jest częścią .NET. CLR == .NET, C++/CLI, nie natywny C++.

0

Żeby korzystać z WindowsForms jest potrzebny włanie C++\CLI albo np. C#. Jeżeli korzystasz z WinAPI lub MFC nie potrzebujesz C++\CLI - wystarczy zwykły C++

0

jest tworzona instancja TextBox umieszczana jest na czyms w rodzaju stosu
nie na stosie, a na tzw. stercie zarządzanej. „zarządzanej” oznacza tutaj, że nie musimy się przejmować losem obiektów których już nie używamy — obiektów utworzonych przez gcnew nie musimy niszczyć przez delete. Środowisko (konkretniej śmieciarz – „garbage collector”) podczas działania programu śledzi czy obiekt jest jeszcze w użyciu czy nie, i zwalnia takie obiekty gdy nazbiera się ich dużo, lub zaczyna brakować pamięci. to jest chyba główna zaleta, o którą pytasz: znika potrzeba martwienia się o to, czy prawidłowo zwalniamy całą pamięć. do wad zaliczyć trzeba, że taki program będzie chodził nieznacznie wolniej, i zajmował więcej pamięci — tu już różnica jest wyraźniejsza, ale przy dzisiejszych gigabajtach RAM-u też nie ma to większego znaczenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1