• 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,654 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 149 wizyt
+1 głos
1 odpowiedź 306 wizyt
pytanie zadane 21 lutego 2021 w C# przez Bartosz Paterek Początkujący (410 p.)
0 głosów
0 odpowiedzi 134 wizyt
pytanie zadane 18 kwietnia 2020 w C# przez Kamilmis Nowicjusz (120 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,004 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...