• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Różnica między C++ a C# - klasy, obiekty, metody

Object Storage Arubacloud
+8 głosów
22,711 wizyt
pytanie zadane 5 kwietnia 2015 w C# przez arkus Bywalec (2,160 p.)
Jaka jest róznica między C++ a C# jeżeli chodzi o obiektowość? Czy zapisywanie klas, metod itd wygląda dość podobnie? Pytam, ponieważ mam do przepisania malutki projekt C++ do C# (zadania na studiach). Z C# nie miałem żadnych zajęć, więc jeszcze nie wiem z czym to się je :P

6 odpowiedzi

+4 głosów
odpowiedź 5 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
wybrane 12 kwietnia 2015 przez arkus
 
Najlepsza

C# jest bardzej podobny do Javy. Nie rozbija sie tam klasy na dwa pliki. W C# jest główna klasa projektu w której znajduje się metoda Main, która jest odpowiednikiem funkcji mian w c++. W klasie głównej możesz tworzyć zmienne, i metody i uzywać ich w metodzie Main. W c# do obsługi konsoli używa się klasy Console.

https://msdn.microsoft.com/pl-pl/library/system.console%28v=vs.110%29.aspx

komentarz 5 kwietnia 2015 przez arkus Bywalec (2,160 p.)
Rozumiem, że deklarację klasy razem ze wszystkimi implementacjami metod trzymam w jednym pliku, tak? Jak to wygląda, jeżeli chodzi o uzycie innych klas w Main?  W C++ includowałem plik nagłówkowy, a w C#?
komentarz 5 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
edycja 5 kwietnia 2015 przez Dawid Sobieszczuk

Mian jest zwykłą metodą tylko statyczną. Wieć jeśli chcesz w niej używać zmiennych i metodej te samej klasy powinny być tez statyczne.

W Visual Studio wszyskie pliki w projekcie są ze sobą połaczeone. I jest tam użyty namespace. Musze sie dowiedzieć na jakiej zasadzie to działa. Ale możesz też wszytkie klasy napisać w jednym pliku.

using System;

public class HelloWorld {
   private static Test t;

   public static void Main() {
      Hello();
      t.Name();
   }
  
  private static void Hello() {
     Console.WriteLine("Hello, World!");
  }
}

public class Test {
  public void Name() {
     Console.WriteLine("Test");
  }
}
komentarz 5 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
edycja 6 kwietnia 2015 przez Dawid Sobieszczuk
Pliki powiny być nazwane tak jak klasa i mają rozszerzenie .cs.
+3 głosów
odpowiedź 5 kwietnia 2015 przez Ursan Bywalec (2,920 p.)
Jeśli znasz C++, nie sądzę, żebyś miał jakiekolwiek problemy. Jeśli chodzi o referencję to trzeba zamiast & dać słówko "ref".
+2 głosów
odpowiedź 5 kwietnia 2015 przez Dorion300 Szeryf (90,250 p.)
W C# wszystko jest w klasie.

A w C++ można bezproblemowo pisać poza klasą. (Jeśli nie chcesz tworzyć obiektu tylko po to aby wywołać funkcję to zadeklaruj funkcję jako static, dzięki temu wystarczy podać nazwę klasy i funkcję.

Kolejną zmianą jest to że zamiast includować trzeba użyć using.

jeśli dany namespace nie istnieje to trzeba zaznaczyć do użytku w ustawieniach projektu (add reference)

Jeśli chodzi o pętle, szwicze, while, to używasz tak jak w C++.

 

Warto jeszcze dodać jak alokujeesz pamięć dynamicznie (NEW): nie ma delete, program sam w odpowiednim momecie usunie.
komentarz 5 kwietnia 2015 przez Sebastian Fojcik Nałogowiec (43,040 p.)
I za ten brak delete niektórzy znielubią C#. Wraz z kolejnymi odsłonami języka staje się on wyższej poziomowym. Z jednej strony ma się mniejszą kontrolę, ale z drugiej strony trzeba się o mniej rzeczy martwić.
+2 głosów
odpowiedź 6 kwietnia 2015 przez Orzech030 Użytkownik (780 p.)

Temat C# a C++ to temat rzeka. Każdy język ma swoje wady i zalety. Osobiście śądze iż do większych projektów C# jest dużo lepszy od C++ ( większa dostępność frameworków, które w znacznej mierze ułatwiają tworzenie aplikacji, oprócz tego nie trzeba przejmować się zarządzaniem pamięciom, poniewarz kompilator C# robi to za nas). 

Pod tym linkiem znalazłem dość fajne porównanie obu tych języków.

+1 głos
odpowiedź 5 kwietnia 2015 przez Tymon Owczarek Nowicjusz (240 p.)

W odróżnieniu od C++ w C# każdy obiekt (jeśli tworzysz jego instancje) alokujesz słowem kluczowym new, w momencie alokacji nazwa danego obiektu jest jednocześnie referencją do niego, gdy nie ma żadnej referencji do obiektu ów jest usuwany z pamięci.

0 głosów
odpowiedź 8 kwietnia 2015 przez Surykat Stary wyjadacz (14,780 p.)

C# jest bardziej "ludzki", wszystko jest zapakowane w pudełka, które można ze sobą łączyć. Mnie na początku ta pełna obiektowość przytłoczyła, ale w sumie jest to potęga tego języka.

Podobne pytania

0 głosów
2 odpowiedzi 155 wizyt
+1 głos
1 odpowiedź 342 wizyt
pytanie zadane 21 lutego 2021 w C# przez Bartosz Paterek Początkujący (410 p.)
0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 18 kwietnia 2020 w C# przez Kamilmis Nowicjusz (120 p.)

92,760 zapytań

141,684 odpowiedzi

320,470 komentarzy

62,104 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...