Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 7 123 ... CuốiCuối
Kết quả 1 đến 10 của 67
  1. #1

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    3 thằng này về kiến trúc và môi trường chạy đều khác nhau hoàn toàn. Bạn hỏi rộng như thế thì sao mà trả lời được.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái này mình tìm được bên IT forum bạn xem có giúp ích được j không ? Có lẽ là khá đầy đủ (và có cái dư ý ! [IMG]images/smilies/biggrin.png[/IMG])
    [meoconlongvang] : Mình nghĩ nó không đến mức hoàn toàn đâu ! Chẳng qua là bạn có tim giúp hoặc chia sẻ cho những người mới như mình không thôi !

    Sự khác nhau giữa C# và C++
    Thừa kế: Trong C++, class và struct hầu như giống nhau, ngược lại trong C#, chúng khá khác nhau. Lớp C# có thể hiện thực/thừa kế (implement) nhiều interface, nhưng chỉ được thừa kế từ chỉ 1 lớp cơ sở. Hơn nữa, struct C# không hỗ trợ thừa kế, và không hỗ trợ constructor mặc định

    Mảng (Array): Trong C++ mảng chính là 1 con trỏ (pointer). Trong C#, mảng là đối tượng (object),có thuộc tính và phương thức. Ví dụ, số phần tử của mảng có thể lấy thông qua thuộc tính Length. Mảng C# còn kiểm tra chỉ số thứ tự khi truy xuất phần tử. Cú pháp khai báo mảng trong C# và C++ cũng khác: token "[] " theo sau khai báo kiểu của mảng chứ không phải đứng sau tên biến như trong C++

    Boolean: Trong C++, kiểu bool thực ra là số integer. Trong C#, không có sự tự chuyển đổi qua lại giữa bool và các kiểu khác

    Kiểu số nguyên long: Trong C#, kiểu long có độ dài 64 bit, trong C++ là 32 bit.

    Kiểu số nguyên int: Trong C#, nó chắc chắn có độ dài 32 bit, trong VC++ là 32 bit, trong các trình biên dịch C++ khác, độ dài của nó có thể là 16 bit.

    Truyền tham số: Trong C++, mọi biến được truyền bằng trị, nếu không phải là con trỏ hoặc biến tham khảo. Trong C#, đối tượng (một thực thể của class) được truyền tham khảo (truyền tham biến), struct được truyền tham trị, nếu không khai báo "ref" hoặc "out"

    Phát biểu switch: Không giống C++, C# hỗ trợ việc nhảy từ nhãn này qua nhãn khác qua phát biểu goto

    Delegate: Delegate C# giống như con trỏ hàm của C++, nhưng an toàn và bảo mật.

    Phương thức trong lớp cha: C# hỗ trợ từ khóa "base" cho việc gọi lại các phương thức của lớp cha. Hàm nạp chồng (overload) được khai báo 1 cách tường minh bằng từ khóa "override"

    Che khuất phương thức: Trong C++ phương thức trong lớp con chắc chắn che khuất phương thức trong lớp cha nếu chúng cùng prototype. Trong C#, bạn phải dùng từ khóa "new" trước phương thức hay thuộc tính bạn muốn che phủ

    Chỉ thị tiền biên dịch: C# chỉ cho đặt dẫn hướng tiền biên dịch (là các symbol) trong configuration của project, mà không có các file header (.h)

    Exception: C# cung cấp từ khóa "finally" cho đoạn code try {} catch để bắt Exception mà cần thêm những tác vụ bảo đảm an toàn

    Toán tử: C# hỗ trợ một số toán tử mở rộng như: "is", "typeof".

    Từ khóa "extern": Trong C++, "extern" dùng để khai báo kiểu/biến được định nghĩa trong file .obj khác. Trong C#, extern dùng để tạo ra một bí danh (alias) khi sử dụng version khác của 1 assembly.

    Từ khóa "static": Trong C++, static dùng trong khai báo phương thức/thuộc tính/biến trong class, hàm. Trong C#, chỉ dùng đối với các thành viên của class, không có trong hàm

    Hàm main: Trong C# hàm Main (M viết hoa) luôn khai báo là static

    Con trỏ: Được phép trong C#, nhưng chỉ trong mode unsafe

    Sự khác nhau ở các toán tử.

    Chuỗi (string): Trong C++, string chỉ đơn giản là mảng ký tự. Trong C# string là 1 đối tượng (object) có hỗ trợ các phương thức tìm kiếm

    Từ khóa foreach: Trong C#, cho phép duyệt qua các phần tử của mảng hoặc tập hợp

    Tầm vực Toàn cục: Trong C#, biến phương thức không có tầm vực toàn cục, chúng bắt buộc phải thuộc 1 class/struct nào đó

    Biến cục bộ: Trong C#, biến cục bộ có thể dùng trước khi khởi tạo giá trị

    Quản lý bộ nhớ: C++ không có cơ chế dọn rác, bộ nhớ không được trả lại hệ thống cho đến khi process kết thúc hoặc tự giải phóng bằng phát biểu delete/free. C# làm một cách tự động

    Hàm khởi tạo: Tương tự như C++, nếu bạn không viết hàm khởi tạo nào trong 1 lớp của C# thì 1 hàm khởi tạo mặc định tự động tạo ra (trong assembly) cho bạn. Hàm khởi tạo mặc định khởi tạo những giá trị mặc định cho các biến thành viên

    Giá trị mặc định cho tham số hàm/phương thức: C# không có, bạn phải dùng cách nạp chồng phương thức để thực hiện

    Kiểu generic: Khai báo như là một tham số của class hay method, tương tự như template trong C++

    Từ khóa "as": toán tử chuyển đổi kiểu, sẽ ném một exception nếu việc chuyển đổi không thực hiện được. Giống với static_cast trong C++, nhưng khác với dynamic_cast vì dynamic_cast không thực hiện kiểm tra sự tương thích kiểu nên không ném exception nào nếu như thực sự có lỗi


    Còn đây là C# và javatepj đính kèm nhé !

  4. #4
    [IMG]images/smilies/biggrin.png[/IMG] Mình thấy độ khó của 3 ngôn ngữ này khác nhau rất rõ: thứ tứ theo độ khó giảm dần là:
    1. C++
    2. Java
    3. C#

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình thì nghĩ java khó hơn C++ rất nhiều

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hoanglamth1
    Mình thì nghĩ java khó hơn C++ rất nhiều
    Trời. Cú pháp của Java đơn giản, trực quan hơn C++. So sánh các vấn đề tương đương thì ko mấy ai đồng tình với bạn cả
    Còn nếu ai chuyên về cái gì hơn thì đương nhiên thấy cái đó dễ hơn [IMG]images/smilies/biggrin.png[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hoanglamth1
    Mình thì nghĩ java khó hơn C++ rất nhiều
    [IMG]images/smilies/1.gif[/IMG] Trời. Bạn học java mà ko đọc phần giới thiệu à? Ở ngay lời nói đầu, sách nào chẳng ghi Java dễ hơn C++, Còn ở C# thì ghi là: C# dễ hơn java và C++.hihi. Bạn ko tin thì hỏi mấy cao thủ C++, C#,Java xem họ nhận định thế nào?hix

  8. #8
    Trích dẫn Gửi bởi Here i am
    mình nghĩ c++ dễ hơn java,có lẽ vì không phải cao thủ,nhưng một điều chắc chắn là nó khó dễ thế nào là tùy vào cảm nhận của mỗi người chứ không phải lời nói đầu ghi nó dễ hơn thì nó nhất định phải dễ hơn
    C++ dễ hơn Java [IMG]images/smilies/1.gif[/IMG]

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    [IMG]images/smilies/1.gif[/IMG] Mọi người vô đây đọc để thêm thông tin nè. Topic này vui đó.
    en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B
    hix. Forum nè tranh luận cũng khá sôi nổi nè:
    forums.overclockers.com.au/showthread.php?t=83641&page=2

  10. #10
    Khó hơn hay dễ hơn có thể có nhiều tiêu chí nhưng theo mình thì quan trọng nhất là ở những thứ :
    - Học mất bao lâu
    - Code cái nào ngắn hơn
    - Debug cái nào dễ hơn, môi trường lập trình cái nào code sướng nhất

    Xét trên cùng 1 ứng dụng mà cả 3 đều hỗ trợ dễ dàng (không tính những cái đặc thù, điểm mạnh riêng) ví dụ làm 1 cái notepad nhái [IMG]images/smilies/biggrin.png[/IMG] thì từ khi bắt đầu học ngôn ngữ cái nào sẽ đạt kết quả nhanh nhất, code mất ít nhất, môi trường soạn thảo ngon lành và hỗ trợ debug tốt nhất.

    còn nếu so sánh những đặc thù thì mỗi chú 1 vẻ, lắm ông sẽ cãi nhau là đúng rồi

    Theo mình thì vẫn c# nhất, java rồi c++. (theo tiêu chí độ dễ)
    Tuy nhiên thêm 1 số tiêu chí (không lại cho là tớ ăn gian) :
    - tốc độ, độ can thiệp thì c++, c# rồi java
    - Đa nền tảng thì java, c++, c#

    thế là các ngôn ngữ đều xuất hiện ở cả đầu, cuối và giữa nhé

 

 
Trang 1 của 7 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •