PDA

View Full Version : C khác C++ thế nào



soleilwave
23-01-2003, 15:52
Mọi người cho tôi hỏi ngôn ngữ C có khác nhiều so với C++ không, mà khác như thế nào.???????

phuongchicken
23-01-2003, 19:43
C++=C+OOP.
Điểm nổi bật của C là LTcấu trúc.
Tui nghĩ bạn có thể học thẳng C++,mà 0 cần wa C cũng Ok đấy

Hell Fire
24-01-2003, 00:00
Chùi ui, chỉ cho rõ đi, OOP = Objest Oriented Programming : Lập trình hướng đối tượng, nếu vậy thì học Java luôn cho rùi, tuy khó hơn C++ nhưng mạnh hơn, lưu ý, C++ thực chất là ngôn ngữ lai giữa lập trình cấu trúc & lập trình hướng đối tuợng. Java đưọc fát triển dựa trên nền tảng của C & C++.

White_Rose
24-01-2003, 01:10
Bài viết được gửi bởi Hell Fire
Java đưọc fát triển dựa trên nền tảng của C & C++. Ý này ở đâu ra vậy?

danceswithwolves
24-01-2003, 09:31
nếu vậy thì học Java luôn cho rùi, tuy khó hơn C++ nhưng mạnh hơn

Copy câu của White_Rose@ nha : Ý này ở đâu ra vậy ?

thanhbinhnetcenter
24-01-2003, 15:48
bạn ấy nhờ các U giúp chứ đâu biểu lập chợ , tui cũng chuẩn bị học C đây nè , chẵng biết hỏi ai .Buồn -> chết !Nếu giúp thì cho nhiệt tình nếu không thì tui không dzô đây đâu !

Lighting_dragon
24-01-2003, 22:01
Tiện thể cũng cho tớ hỏi với. VC và VC++ có phải cần các file hỗ trợ chết tiệt như VB không vậy. Và nó có mạnh hơn VB không.

White_Rose
25-01-2003, 20:15
Bài viết được gửi bởi Lighting_dragon
Tiện thể cũng cho tớ hỏi với. VC và VC++ có phải cần các file hỗ trợ chết tiệt như VB không vậy. Và nó có mạnh hơn VB không. Ý một: May mắn là không nếu bạn không cần dùng (trong VB, mấy thư việc base thì phải có X( )
Ý hai: Có và hơn khá nhiều.
:) Nhưng mà hình như hổng có VC.

Nguyen Minh
26-01-2003, 08:57
Lâu ngày mới ghé vào đây chơi. Tiện thể góp với các bạn vài ý.

- Điều đầu tiên, có bạn nói C là lập trình có cấu trúc là đúng, nhưng không đủ. Tất cả các ngôn ngữ bậc cao (trên ASM) đều là ngôn ngữ lập trình có cấu trúc (viết chương trình có khối, có function), có nghĩa là cả C++, Java, Basic (trong VB) đều là lập trình có cấu trúc.
- Điểm chung giữa Java và C++ và khác với C, Basic là Java và C++ là lập trình hướng đối tượng (OOP), còn 2 cái kia thì không.
- C++ có thể coi là cải tiến từ C, còn Java thì không, mặc dù có rất nhiều cấu trúc câu lệnh của Java giống với C/C++. Nói cách khác các tác giả Java học và bắt trước rất nhiều từ C/C++.
- Ưu thế của lập trình hướng đối tượng là lớp (class) và những tính chất như kế thừa, dùng lại. Những thứ này chung qui là giúp cho việc lập trình cộng tác (nhiều người) dễ dàng hơn, nhanh hơn (dễ dùng lại, dễ sửa chữa, dễ nâng cấp), mã đảm bảo hơn (ít lỗi hơn). Nói cách khác, nếu bạn viết những chương trình lớn, dùng nhiều người, chương trình thương mại, chương trình được phát triển trong nhiều năm, nhiều version thì lập trình hướng đối tượng là lựa chọn số một.

Dùng ngôn ngữ lập trình / công cụ phát triển nào:
- Các bạn cần thấy là C, C++, Java, VB ngày nay đang cùng tồn tại bên nhau, không có cái nào bị tiêu diệt cả. Như vậy, chúng đều có cái hay, cái mạnh và có những lĩnh vực chuyên - có thế mới không bị mai một. Do đó, bất cứ bạn nào khen cái này chê cái kia đều đúng vì bạn đó đứng trên góc độ của mình để nói.
- Đánh giá: Bản thân tôi yêu thích C++ và không biết nhiều về VB nên cũng khó có thể đánh giá thật đúng và công bằng. Do đó phần này của tôi chỉ có giá trị tham khảo:
+VB: công cụ phát triển ứng dụng trên nền ngôn ngữ lập trình Basic. Rất thích hợp cho những ứng dụng CSDL loại nhỏ, chỉ cần phát triển trong thời gian ngắn. Nếu ứng dụng trở nên phức tạp hơn, đòi hỏi nhiều thứ hơn thì rất khổ cho người lập trình đấy.
+Java: nếu bạn say mê với quảng cáo của Java "viết một lần, dùng mọi nơi". Java cũng như C++ có thế mạnh là OOP. Ngoài ra, do sinh sau và tập trung vào Internet nên nó có thêm những cái mạnh khác như cơ chế bảo mật khá tốt, có thể tạo nên những chương trình rất nhỏ (applet). Nhược điểm chính của Java là dùng mã trung gian (không phải mã máy) nên chậm. Nói chung những chương trình cần nhanh một chút (ví dụ chương trình tính toán nhiều, đồ hoạ nhiều) thì Java không thể đáp ứng được.
+C: thích hợp với những ứng dụng nhỏ hoặc bạn cần nghiên cứu mã nguồn của những chương trình cũ. Ngôn ngữ vạn năng trước đây. Điểm mạnh là có rất nhiều thư viện (lib) dùng cho C. Đành rằng ngày xưa người ta có thể dùng C để viết nên mọi thứ, nhưng cũng giống như chỉ cần xẻng, đất và cát có thể xây được nhà. Tôi không khuyên bạn học C dù là người mới bắt đầu.
+C++: ngôn ngữ OOP, phát triển từ C lên. Phải nói rằng đây là ngôn ngữ mạnh nhất bây giờ, xét trên rất nhiều phương diện. Nó là ngôn ngữ vạn năng của thời hiện tại - máy bay, xe xúc vạn năng: có nghĩa là người ta có thể dùng nó mọi nơi, viết mọi ứng dụng. Bạn nên học ngôn ngữ này nếu có định hướng lâu dài.

C++ bây giờ cũng giống như tiếng Anh, mặc dù thế giới có nhiều ngôn ngữ nhưng người ta vẫn coi đó là ngôn ngữ phổ biến và thích dùng nó hơn những thứ khác.

Một điểm mạnh của C++ là ngoài việc dùng lại được các thư viện C, C++ còn có rất nhiều thư viện mã nguồn (dạng class).

Học C++ không khó, bạn có thể học và nắm vững trong vòng một vài tháng. Nhưng cái khó ở đây là học dùng các thư viện class. Mặc dù bạn có thể tự xây dựng cho mình các class rồi từ đó xây dựng các ứng dụng riêng của bạn, thì bây giờ người ta hay dùng các bộ class có sẵn và chỉ học sử dụng mà thôi. Nhờ thế người ta chỉ cần tự viết một số ít các hàm, các class mới, do đó ứng dụng viết ra trong thời gian ngắn, an toàn cao vì đa số mã trong các class cho sẵn đã được test rất cẩn thận rồi.

Đối với người lập trình cho Windows, người ta dùng chủ yếu là bộ MFC (Microsoft Fundation Class library - vài trăm ngàn dòng mã) đi kèm với công cụ VC++. Để học cách dùng ban đầu bạn có thể chỉ cần bỏ ra khoảng 4 tháng. Nhưng để nắm tương đối vững (được coi là chuyên nghiệp) thì cần làm việc cật lực trong vòng 2-3 năm).

Một ý cuối nữa là MFC là con đẻ của Microsoft nên họ chăm bẵm, ủng hộ nó hết mình, cho nó rất nhiều thứ (Java thì không). VC++ cũng trở thành công cụ lập trình tốt nhất hiện nay. Nếu bạn chỉ định lập trình cho Windows thì không cần phải nghi ngờ: VC++ và MFC là number one :-)

soleilwave
26-01-2003, 11:30
vậy nếu tôi định học C++ thì tốt nhất là nên học Java hơn có phải không

Nguyen Minh
27-01-2003, 08:59
Cũng không biết phải khuyên bạn thế nào cho đúng. Có lẽ là tuỳ bạn. Bạn học cái nào cũng được, miễn là thấy nó có ích. Nếu thấy được lợi ích của việc học thì dễ học hơn. Ví dụ, nếu bạn học với mục tiêu để viết được một cái gì đó hoặc nhằm xin việc ở một công ty nào đó thì học rất nhanh.

Một điều quan trọng nữa là môi trường: nếu bạn có nhiều tài liệu, bạn có thầy dậy, xung quanh bạn có nhiều chuyên gia về một ngôn ngữ nào đó và sẵn sàng giúp đỡ thì nên học nó.

Về lâu dài, nếu bạn định theo nghề tin học thì phải học cả đấy. Có điều sau khi nắm vững một thứ rồi thì học thứ kia rất nhanh.

Có lẽ lời khuyên duy nhất của tôi ở đây là nên tránh học C và VB trước. Nên học C++ (và cho Win ngay) hoặc Java ngay từ đầu. Ai đã từng học C rồi mới đến ngôn ngữ OOP sẽ thấy rất khổ vì bị thay đổi quan niệm lập trình rất nhiều. Còn học VB chỉ có ích nếu bạn định ra một sản phẩm trong vòng vài tháng tới. Về lâu dài, học VB trước sẽ làm bạn thấy khó học cái khác hơn.

soleilwave
29-01-2003, 16:05
Tôi là người mới bước chân vào lĩnh vực lập trình mới 1 tháng nay, cũng chưa biết gì nhiều, học trong aptech mà, đầu tiên họ dạy C và tôi cũng đang học đây, điều mà tôi muốn biết ở đây là cấu trúc hay các mã lệnh của C và C++ có khác nhau rõ rệt không mặc dù tôi nghe C++ phát triển trên C. Tiện thể tôi cũng hỏi luôn câu hỏi này cho Java và Core Java, tôi cũng sắp phải học cả Core Java nữa mà, Cám ơn mọ người

minhbeo
07-02-2003, 00:35
Tôi đồng ý với Nguyen Minh về C++ nhưng theo tôi thì bây giờ mọi ngôn ngữ đều là " tất cả trong 1 " đối với thế giới .NET của tương lai. Cho nên tôi khuyên các bạn nên học VB.NET cho dễ học và trực quan hơn, mặc dù tôi đang học C# vì tôi đã quen với C++.

White_Rose
07-02-2003, 02:04
Không hẳn. Nếu là chọn lựa công bằng thì C# sẽ có một số ưu điểm nhất định mà VB.NET không có. VB.NET chỉ tốt khi bạn hoặc các thành viên khác trong nhóm quen thuộc VB.

soleilwave
09-02-2003, 16:14
hừm, cũng chẳng biết thế nào, mỗi người một ý khác nhau, có khi phải nghiên cứu mỗi thứ một tí rồi thấy cấi nào phù hợp với mìh nhất thì chuyên sâu cái đó nhỉ,.............

yeuvietnam
09-02-2003, 17:45
hehe, hoc cai nao cung hay, an thua la nguoi thue minh viet nguoi ta can gi??? tui khong quan trong ngon ngu. quang trong doi voi nguoi lap trinh la tu duy logic, va biet ap dung cong cu dung voi yeu cau, khong phai cai ngon ngu nao kho la lam tat ca. phai vay khong?

phuongchicken
10-02-2003, 22:37
Bác nói đúng lắm.
Cái wan trọng là tư duy LT chứ không phải ngôn ngữ LT.
Theo tui còn 1 điều này nữa :
CNTT không có nghĩa là suốt ngày ngồi vào máy tính.
trong các dự án thì chỉ 20% thời gian là ngồi gõ cành cạch trên máy.
Còn 1 bộ phận cấp cao hơn là phân tich thiết kế và tích hợp hệ thống.Tui cũng có 1 số tài liệu về cái này.Nhưng xem ra muốn trở thành expert để làm Project manager thì phải tích luỹ kinh nghiệm khi dã đi làm
Nói chung các tài liêu để học các ngôn ngữ thì hàng núi.
nhung tài liệu về việc ứng dụng ngôn ngữ đó dể làm các chương trình lớn thì hiếm lắm
BÁC nào có thì trao đổi với tui nhé.(tui chỉ có mấy cái của Nhật thui)

thanh_dn
27-04-2003, 08:01
Không ai có thể học và làm việc với tất cả các ngôn ngữ, nhưng ngặt nỗi ý tưởng của cong người quá nhiều và cái cần là triển khai ý tưởng thành hiện thực và phải chọn một ngôn ngữ thật thích hợp để triển khai.

Giờ đây các Lib cho các ngôn ngữ là khổng lồ nên vai trò ngôn ngữ có vẻ (mà thật ra đúng như vậy) xem nhẹ. Mọi người thấy đấy C/C++ for windows người ta thích nói tới MFC, IDE VC hay Borland. Nhưng dù sao tất cả các Lib đều xây dựng bằng NN nào đó và nhiều nhất là C.

Nhân của "mọi???" hệ diều hành (*nix, OS, Windows) được được viết bằng C -> huge library.

Oracle viết ra Oracle bằng C (bây giờ thì không biết chính xác nhưng ngày trước thì đúng vậy).

Tôi thích được nghe những người làm Java based application và .NET based application nói về điểm mạnh điểm yếu của các dòng ứng dụng này hơn là nói cái gì đó quá cao siêu hay một cái gì đó kiểu chuyện "cũ rích" còn phải bàn.

Chuẩn mở (Linux, BSD...) + Java = App
Windows + .NET = App.
Bạn ủng hộ cái nào!!!!.

ttbidouille
01-05-2003, 15:41
Mình không đọc hết , chỉ mới đọc tự thôi ...
C khác với C++ là C không có ++