Tomek2 napisał(a)
- jesli tworzysz projekt w .NET, to możesz użyc wielu języków programowania (C++, C#, VB a nawet IronPython), ale nie zmienia to faktu, że taki program pracuje pod .NET framework. Jesli z tych języków wybierzesz C++, to ma on takie same zasady jak np. C# i wtedy klasy są domyślnie typami referencyjnymi i nie musisz podawać "&" w nazwie metody (a chyba nawet nie możesz).
Dlaczego zawsze najwięcej do powiedzenia mają osoby, które nie mają pojęcia? Tacy jak Ty tylko utrudniają korzystanie z serwisu - nie wiesz to nie pisz; nie jesteś pewien, sprawdź zanim innych w błąd wprowadzisz.
C++ i C++/CLI to dwa różne języki. C++/CLI oferuje dwa typy klas, klasy natywne i zarządzane, zaś obiekty zarządzane trzyma się przez zarządzane referencje:
class Natywna {};
ref class Zarządzana {};
//...
int main() {
Natywna *natywna = new Natywna();
Zarządzana ^zarządzana = gcnew Zarządzana();
// ...
delete natywna;
zarzadzana = nullptr; // co najwyżej zerujesz referencję, zwalnianiem zajmie się GC
}
@mosses: "klasy" w C++ to nic innego jak struktury z domyślnym modyfikatorem dostępu private, nie różnią się niczym innym. Co więcej, definicja może się różnić "rodzajem" od deklaracji poprzedzającej:
class Struktura;
struct Struktura {
// ... domyślnie public
};