Sự khác biệt giữa C và C ++ với các ví dụ | Ngôn ngữ lập trình

Điểm khác biệt chính: C và C ++ là hai ngôn ngữ lập trình máy tính khác nhau. C ++ được phát triển từ ngôn ngữ lập trình C; tuy nhiên chúng khá khác nhau về bản chất. Sự khác biệt rõ ràng nhất là C là ngôn ngữ hướng thủ tục, trong khi C ++ hỗ trợ cả lập trình hướng đối tượng và hướng đối tượng, do đó nó thường được gọi là ngôn ngữ lai.

C và C ++ là hai ngôn ngữ lập trình máy tính khác nhau. C ban đầu được phát triển bởi Dennis Ritchie tại AT & T Bell Labs từ năm 1969 đến năm 1973. C ++ là một ngôn ngữ lập trình đa năng khác. Nó được phát triển từ ngôn ngữ lập trình C gốc. Nó được phát triển bởi Bjarne Stroustrup tại Bell Labs bắt đầu từ năm 1979. C ++ ban đầu được đặt tên là C với Classes, vì nó được dựa trên C. Nó được đổi tên thành C ++ vào năm 1983.

C là một trong những ngôn ngữ lập trình lâu đời nhất hiện đang được sử dụng và là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất. Nó đã được sử dụng liên tục trong các ứng dụng đã được mã hóa trước đó bằng ngôn ngữ lắp ráp. Điều này bao gồm hệ điều hành máy tính UNIX. C cũng đã ảnh hưởng trực tiếp hoặc gián tiếp đến rất nhiều ngôn ngữ lập trình sau này, chẳng hạn như C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python và shell C của Unix. Mặc dù tất cả các ngôn ngữ mới này, C vẫn là một ngôn ngữ lập trình phổ biến.

C ++ ban đầu khởi đầu là một cải tiến cho C. Nó được thiết kế để tương thích giữa nguồn và liên kết với C. Tuy nhiên, nó đã thêm các lớp, hàm ảo, nạp chồng toán tử, nhiều kế thừa, xử lý ngoại lệ, v.v. Cuối cùng, nó đã phát triển đủ để được coi là một ngôn ngữ lập trình theo đúng nghĩa của nó. Ban đầu nó được phê chuẩn vào năm 1998 là ngôn ngữ lập trình được chứng nhận ISO / IEC 14882: 1998. Ngày nay, C ++ hiện được sử dụng phổ biến cho thiết kế phần cứng.

C là ngôn ngữ lập trình có mục đích chung, sử dụng dấu chấm phẩy (;) làm dấu kết thúc câu lệnh, cũng như dấu ngoặc nhọn ({}) để nhóm các câu lệnh. Nó có các phương tiện để lập trình có cấu trúc và thiết kế của nó cung cấp các cấu trúc có thể ánh xạ hiệu quả theo các hướng dẫn máy điển hình. Nó cũng cho phép phạm vi và đệ quy biến từ vựng và có một hệ thống kiểu tĩnh, ngăn chặn nhiều hoạt động ngoài ý muốn.

Tuy nhiên, so với C ++, C có nhiều hạn chế. Vì C không hướng đối tượng, nó không hỗ trợ các khái niệm OOPS. C không hỗ trợ chức năng và quá tải toán tử. Nó không thể sử dụng các chức năng bên trong các cấu trúc. Nó không hỗ trợ các hàm ảo và các biến tham chiếu hoặc xử lý ngoại lệ. Nó cũng không hỗ trợ các biến tham chiếu. Ngoài ra, C cũng không đóng gói hoặc bảo mật dữ liệu. So sánh, C ++ hỗ trợ tất cả các tính năng này.

Hơn nữa, C không hỗ trợ tính năng NAMESPACE, trong khi C ++ thì có. Một không gian tên là một vùng xác định cho phép một nhóm định danh (tên của các loại, hàm, biến, v.v.). Không gian tên sau đó có thể được sử dụng để tổ chức mã thành các nhóm logic và để tránh xung đột tên. Điều này đặc biệt hữu ích khi cơ sở mã bao gồm nhiều thư viện, điều này lý tưởng làm cho mã dễ bị va chạm tên.

Hai ngôn ngữ cũng khác nhau về cách thức chức năng bộ nhớ địa chỉ, đầu vào-đầu ra và lập trình GUI. Chẳng hạn, C sử dụng các hàm calloc (), malloc () và free () để cấp phát và phân bổ bộ nhớ, trong khi C ++ sử dụng mới và xóa. C sử dụng scanf () và printf () cho đầu vào và đầu ra, trong khi C ++ sử dụng các toán tử cin >> và cout <<. C hỗ trợ công cụ GTK để lập trình GUI, trong khi C ++ hỗ trợ các công cụ Qt để lập trình GUI. Một điểm khác biệt nữa là C yêu cầu một người khai báo tất cả các biến ở đầu chương trình, trong khi đó trong C ++, các biến có thể được khai báo ở bất cứ đâu trong chương trình.

Ngoài ra, C ++ thường được coi là dễ học hơn, vì nó thân thiện với người dùng hơn C. C ++ cũng có nhiều chức năng bổ sung giúp mã hóa dễ dàng hơn, đặc biệt đối với người mới sử dụng khung C. Tuy nhiên, nhiều người cho rằng nó thực sự quan trọng. Hai ngôn ngữ khác nhau rất nhiều, trên thực tế chúng có thể là hai ngôn ngữ khác nhau độc lập với nhau. Một điều cần lưu ý là C có cấu trúc hơn nhiều so với C ++, trong khi C ++ được thiết kế để biểu cảm và trừu tượng hơn C.

So sánh giữa C và C ++:

C

C ++

Thành lập

Được phát triển bởi Dennis Ritchie tại AT & T Bell Labs từ năm 1969 đến năm 1973.

Được phát triển bởi Bjarne Stroustrup tại Bell Labs bắt đầu từ năm 1979.

Mã nguồn

Mã nguồn chương trình định dạng miễn phí

Ban đầu được phát triển từ ngôn ngữ lập trình C

Ngôn ngữ

Thủ tục định hướng ngôn ngữ

Hỗ trợ cả mô hình lập trình hướng đối tượng và hướng đối tượng; do đó nó thường được gọi là ngôn ngữ lai.

Tiếp cận

Theo cách tiếp cận từ trên xuống.

Theo cách tiếp cận từ dưới lên.

Mối quan hệ

C là tập con của C ++. Nó không thể chạy mã C ++.

C ++ là siêu bộ của C. C ++ có thể chạy hầu hết mã C trong khi C không thể chạy mã C ++.

Lái xe

Ngôn ngữ điều khiển chức năng

Ngôn ngữ hướng đối tượng

Tiêu điểm

Tập trung vào phương pháp hoặc quy trình hơn là dữ liệu.

Tập trung vào dữ liệu hơn là phương pháp hoặc thủ tục.

Khu nhà

Chức năng

Các đối tượng

Từ khóa

Chứa 32 từ khóa

Chứa 52 từ khóa

Khái niệm OOPS

Vì ngôn ngữ 'C' là ngôn ngữ hướng thủ tục, nó không hỗ trợ các khái niệm OOPS như lớp, đối tượng, Kế thừa, Đa hình, Ẩn dữ liệu, v.v.

Là một ngôn ngữ hướng đối tượng, C ++ hỗ trợ lớp, đối tượng, ẩn dữ liệu, đa hình, Kế thừa, trừu tượng, v.v.

Chức năng

  • Không hỗ trợ chức năng và quá tải toán tử.
  • Không thể sử dụng các chức năng bên trong các cấu trúc
  • Không hỗ trợ các hàm ảo và các biến tham chiếu
  • Không hỗ trợ xử lý ngoại lệ
  • không hỗ trợ các biến tham chiếu
  • không có tính năng không gian tên
  • có thể gọi Hàm main () thông qua các Hàm khác
  • Hỗ trợ chức năng và quá tải toán tử.
  • Có thể sử dụng các chức năng bên trong các cấu trúc
  • Hỗ trợ các hàm ảo & các biến tham chiếu.
  • Hỗ trợ xử lý ngoại lệ bằng cách sử dụng khối thử và bắt. Các ngoại lệ được sử dụng cho các lỗi "cứng" làm cho mã không chính xác.
  • hỗ trợ các biến tham chiếu
  • sử dụng tính năng NAMESPACE để tránh va chạm tên.
  • không thể gọi hàm main () thông qua các hàm khác.

Chức năng bộ nhớ

Sử dụng các hàm calloc (), malloc () và free () để cấp phát và phân bổ bộ nhớ.

Sử dụng toán tử mới và xóa cho cùng một mục đích.

Đóng gói

Không hỗ trợ. Dữ liệu và chức năng là các thực thể riêng biệt và miễn phí.

Hỗ trợ đóng gói. Dữ liệu và chức năng được gói gọn lại với nhau dưới dạng một đối tượng. Lớp đối tượng cung cấp một kế hoạch chi tiết về cấu trúc của đối tượng.

Ẩn thông tin

C không hỗ trợ che giấu thông tin. Ở đây, dữ liệu là các thực thể miễn phí và có thể được thao tác bằng mã bên ngoài.

Đóng gói ẩn dữ liệu để đảm bảo rằng các cấu trúc dữ liệu và toán tử được sử dụng như dự định.

Dữ liệu

Hỗ trợ các kiểu dữ liệu tích hợp và nguyên thủy.

Dữ liệu không được bảo mật do không hướng đối tượng

Hỗ trợ cả kiểu dữ liệu tích hợp và người dùng xác định.

Dữ liệu được bảo mật (ẩn) trong C ++

Cấp độ

Ngôn ngữ cấp thấp

Ngôn ngữ trung cấp

Đầu ra đầu vào

Ngôn ngữ 'C' sử dụng scanf () và printf () cho đầu vào và đầu ra.

Ngôn ngữ 'C ++' sử dụng các toán tử cin >> và cout << cho đầu vào và đầu ra.

Tuyên bố biến

C yêu cầu một khai báo tất cả các biến ở đầu chương trình.

Trong C ++, các biến có thể được khai báo ở bất cứ đâu trong chương trình trước khi sử dụng.

Tuyên bố nhiều

Nhiều tuyên bố về các biến toàn cầu được cho phép.

Không được phép khai báo nhiều biến toàn cục.

Lập bản đồ

Ánh xạ giữa dữ liệu và chức năng là khó khăn và phức tạp.

Ánh xạ giữa Dữ liệu và Hàm có thể được sử dụng bằng "Đối tượng"

Lập trình GUI

C hỗ trợ công cụ GTK để lập trình GUI

C ++ hỗ trợ các công cụ Qt để lập trình GUI

Di sản

Kế thừa là không thể trong C

Kế thừa có thể có trong C ++

Mở rộng tập tin

Có phần mở rộng tập tin .c

Có phần mở rộng tập tin .cpp

Tệp tiêu đề mặc định

Tệp tiêu đề mặc định được sử dụng trong ngôn ngữ C là stdio.h

Tệp tiêu đề mặc định được sử dụng trong C ++ là iosteam.h

Một số ví dụ về sự khác biệt giữa C và C ++:

Ví dụ

C

C ++

Sự định nghĩa biến

Chỉ ở trên cùng:

int i;

cho (i = 10; i <10; i ++)

Bất cứ nơi nào trong chương trình:

cho (int i = 10; i <10; i ++)

Cấp phát bộ nhớ

Malloc:

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

Mới:

int * x = new int;

int * x_array = new int [10];

Giải phóng bộ nhớ

Miễn phí:

miễn phí (x);

miễn phí (x_array);

Xóa bỏ:

xóa x;

xóa [] x_array;

Đề XuấT

Bài ViếT Liên Quan

  • sự khác biệt giữa: Sự khác biệt giữa Gateway và Router

    Sự khác biệt giữa Gateway và Router

    Sự khác biệt chính: Cổng được xác định là nút mạng cho phép một mạng giao tiếp với một mạng khác với các giao thức khác nhau. Bộ định tuyến là một thiết bị có khả năng gửi và nhận các gói dữ liệu giữa các mạng máy tính, cũng tạo ra một mạng lưới lớp phủ. Đối với những người chưa quen với mạng hoặc thế giới mạng thường bị nhầm lẫn bởi các thu
  • sự khác biệt giữa: Sự khác biệt giữa FPO và OFS

    Sự khác biệt giữa FPO và OFS

    Sự khác biệt chính: FPO (Chào bán công khai tiếp theo) hoặc OFS (Chào bán) không hoàn toàn giống nhau, nhưng chúng phục vụ cùng một mục đích. Cả hai đều là phương pháp để kiếm tiền bằng cách bán thêm cổ phiếu được sở hữu bởi các cổ đông hoặc chủ sở hữu đa số. Các thuật ngữ thị trường thường gây nhầm lẫn cho nhiều người không đầu tư nhiều th
  • sự khác biệt giữa: Sự khác biệt giữa bơ sữa và sữa chua

    Sự khác biệt giữa bơ sữa và sữa chua

    Sự khác biệt chính: Buttermilk đề cập đến hai hình thức đồ uống khác nhau: truyền thống và văn hóa. Bơ sữa truyền thống là chất còn sót lại sau khi bơ bị bong ra khỏi kem. Sữa bơ được nuôi cấy là quá trình lên men sữa nhân tạo khiến nó đặc lại. Sữa chua là một sản phẩm nhật ký được tạo ra bằng cách lên men sữa bằng vi
  • sự khác biệt giữa: Sự khác biệt giữa Bia Lager và Bia mạnh

    Sự khác biệt giữa Bia Lager và Bia mạnh

    Sự khác biệt chính: Có hai loại bia chính: ales và lager. Lager là một loại bia lên men dưới đáy. Trong đó men thu thập dưới đáy thùng chứa khi nó lên men. Bia mạnh là bất kỳ loại bia nào có nồng độ cồn cao. Bia là một trong những đồ uống có cồn lâu đời nhất, và nó liên tục là một trong những loại phổ biến nhất. Bia là thức uống được tiêu thụ phổ biến thứ ba (có cồn hoặc không). Hai thứ nhất là nước
  • sự khác biệt giữa: Sự khác biệt giữa Thứ Sáu Đen và Thứ Hai Điện Tử

    Sự khác biệt giữa Thứ Sáu Đen và Thứ Hai Điện Tử

    Sự khác biệt chính: Thứ Sáu Đen là Thứ Sáu sau Lễ Tạ ơn, thường là ngày ngay sau Lễ Tạ ơn. Thứ Hai Điện Tử là Thứ Hai sau Lễ Tạ ơn và thuyết phục mọi người mua sắm trực tuyến. Lễ Tạ ơn thường được coi là bắt đầu mùa lễ hội kết thúc sau năm mới. Lễ Tạ ơn, theo nghĩa truyền thống của nó, là một ngày mà các gia đình và những người th
  • sự khác biệt giữa: Sự khác biệt giữa Chứng chỉ và Văn bằng

    Sự khác biệt giữa Chứng chỉ và Văn bằng

    Điểm khác biệt chính: Bằng tốt nghiệp là một tài liệu, được cấp bởi một tổ chức giáo dục, chẳng hạn như một trường cao đẳng hoặc đại học. Nó biểu thị rằng người nhận đã hoàn thành khóa học. Tuy nhiên, chứng chỉ là một tài liệu biểu thị một số thực tế hoặc sự công nhận, hoặc nó có thể được sử dụng để chứng minh rằng một cái gì đó được nêu trong giấy chứng nhận là đúng. Giấy chứng nhận và bằng tốt nghiệp là những thuật ngữ thường được sử dụng khi thảo luận về công nhận. Nhiều đến nỗi, định nghĩa của họ đã bị mờ
  • sự khác biệt giữa: Sự khác biệt giữa Malt Whisky và Blended Whisky

    Sự khác biệt giữa Malt Whisky và Blended Whisky

    Sự khác biệt chính: Rượu whisky mạch nha là một loại rượu whisky thường được làm từ mạch nha lúa mạch được lên men với men và sau đó được chưng cất. Whisky pha trộn được thực hiện bằng cách trộn các loại whisky khác nhau. Chúng có thể được chuẩn bị bằng cách trộn các loại mạch nha đơn hoặc các loại whisky khác như ngũ cốc hoặc cả hai. Rượu whisky mạch nha là một loại rượu whisky được làm từ một loại hỗn hợp lên men được làm bằng chỉ hạt mạ
  • sự khác biệt giữa: Sự khác biệt giữa LHQ và WTO

    Sự khác biệt giữa LHQ và WTO

    Sự khác biệt chính: WTO có trách nhiệm tạo thuận lợi cho thương mại thế giới, trong khi Liên Hợp Quốc chịu trách nhiệm thúc đẩy hợp tác quốc tế. Liên hợp quốc (LHQ) và Tổ chức Thương mại Thế giới là hai tổ chức hoàn toàn khác nhau, phụ trách hai chức năng khác nhau trên phạm vi toàn cầu. Trong khi, WTO chịu trách nhiệm tạo thuận lợi cho thương mại thế giới, LHQ có trác
  • sự khác biệt giữa: Sự khác biệt giữa Skinkle và Scanning

    Sự khác biệt giữa Skinkle và Scanning

    Sự khác biệt chính: Đọc lướt và quét là hai kỹ thuật khác nhau để đọc nhanh. Đọc lướt là tất cả về việc đọc bài viết để có được ý tưởng chung về nó. Mặt khác, quét là về việc định vị một văn bản hoặc cụm từ cụ thể trong tài liệu. Đọc thường được coi là một kỹ thuật. Mọi người đọc một bài báo, cuốn sách, vv, để có được mộ

Editor Choice

Sự khác biệt giữa Tạp chí và Tạp chí

Sự khác biệt chính: Tạp chí là tạp chí định kỳ phổ biến được xuất bản để giải trí của mọi người. Chúng có thể chứa các mẩu lông tơ, bài báo kiến ​​thức chung, tin tức và tin đồn về người nổi tiếng, vv Các tạp chí là những ấn phẩm học thuật nghiêm túc, bao quát toàn bộ ngành công nghiệp hoặc một lĩnh vực khoa học và giáo dục cụ thể. Chúng thường chứa các nghiên cứu ban đầu hoặc các bài báo được xuất bản bởi các đồng nghiệp đáng chú ý trong ngành công