- عنوان کتاب: C++, The Comprehensive Guide
- نویسنده: Torsten T. Will
- حوزه: برنامه نویسی CPP
- سال انتشار: 2025
- تعداد صفحه: 1917
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 12.0 مگابایت
از خرید این کتاب متشکریم! همیشه ویژگیهای مدرنی در ++C وجود دارد که روشهای جدید کار و اصطلاحات جدید را ممکن میسازد. اگر در اینترنت از ++C مثال بخواهید، اکثر منابع به سبک C-مانند متمایل هستند که ارتباط چندانی با امکانات ++C مدرن ندارد: اکتساب منابع از طریق مقداردهی اولیه (RAII) در ابتدا، مفاهیم و ماژولهای جدید و کوروتینها و محدودهها. مثل همیشه، قصد دارم نقاط قوت ++C را به طور خاص به شما نشان دهم – به خصوص در مواردی که معتقدم ++C از سایر زبانها جلوتر است. در این ویرایش، فرض میکنم که شما از کامپایلری استفاده خواهید کرد که کاملاً قادر به ++C 17 است. از آنجا که همه کامپایلرهای محبوب اکنون از ++C 20 نیز پشتیبانی میکنند، با این ویژگیها نیز مشکلی نخواهید داشت. در کتاب، من بیشتر به استفاده از ++C 20 اشاره میکنم، اما به درخواست ناشر، از تأکید تایپی خاص بر روی آن خودداری کردهام. من همچنین ویژگیهای ++C 23 را شرح میدهم که همیشه به آنها اشاره و تأکید میکنم، زیرا پشتیبانی کامپایلر از این ویژگیها به هیچ وجه کامل نیست. میخواهم به طور خلاصه توجه شما را به ویژگیهای C++17 جلب کنم که دیگر بر آنها تأکید نمیکنم، اما تقریباً در تمام فهرستها از آنها استفاده میکنم و اگر کامپایلر شما آنها را مدیریت نکند، میتوانند شما را گیج کنند. شما هنوز باید کسر آرگومان قالب کلاس را برای سازندهها در vector data{1,2,3} به صورت vector<int> data{1,2,3} بنویسید. شما string_view را از دست خواهید داد و در عوض باید const string& را بنویسید. چند نکته کوچک دیگر وجود دارد که در اینجا فهرست نمیکنم. در C++20، قالبهای تابع خلاصه شده اضافه شدهاند که بسیار مفید هستند، اما گاهی اوقات اشاره به آنها در فهرستها دشوار است. اگر تا به حال auto را در یک پارامتر تابع مشاهده کردید، در واقع یک قالب تابع است. با این حال، شکافهایی نیز وجود دارد: متأسفانه ماژولها هنوز به طور کامل توسعه نیافتهاند، بنابراین نمیتوانم نکات زیادی در مورد آنها به شما ارائه دهم. و در حالی که format به طور گسترده پشتیبانی میشود، هنوز این مورد برای print صدق نمیکند. البته، هیچ چیز در مورد نوشتن برنامه خود به صورت “سنتی” وجود ندارد. به طور خلاصه، از نظر من، این بدان معناست که برنامه شما بیشتر از آنچه که میتواند به نظر برسد، شبیه C است. البته هیچ اشکالی ندارد. برخی از بهترین برنامهها با زبان C نوشته شدهاند. با این وجود، اگر امروز پروژهای را شروع کنید و تصمیم بگیرید از یک زبان برنامهنویسی ترجمهشده به کد ماشین استفاده کنید، بهتر است از ++C استفاده کنید. زیرا اتفاقی در این زبان در حال رخ دادن است – یا بهتر بگوییم، اتفاقی افتاده است. با C++23، زبانی دارید که از شما در نوشتن برنامههای خوب به روشی بهروز پشتیبانی میکند. این بدان معناست که برنامههای شما سریع، مقاوم در برابر خطا و قابل نگهداری هستند. میتوانید به طور مؤثر برنامهنویسی کنید.
Thank you for purchasing this book! There are always modern features in C++ that enable new ways of working and new idioms. If you ask the internet for examples in C++, most sources lean towards the C-like style, which has little to do with the possibilities of modern C++: resource acquisition is initialization (RAII) up front, new concepts and modules and coroutines and ranges. As always, I intend to show you the strengths of C++ in particular—especially where I believe that C++ is ahead of other languages. In this edition, I am assuming you will use a compiler that is fully capable of C++17. Because all popular compilers now also support C++20, you will have no problems with those features either. In the book, I mostly point out the use of C++20, but at the publisher’s request, I have refrained from specific typographical emphasis on the same. I also describe C++23 features, which I always point out and emphasize, as compiler support for these features is far from complete. I want to briefly draw your attention to C++17 features that I no longer emphasize, but that I use in almost all listings and that could confuse you if your compiler does not handle them. You still need to write the class template argument deduction for constructors in vector data{1,2,3} as vector<int> data{1,2,3}. You will miss string_view and instead need to write const string&. There are a few more little things that I won’t list here. In C++20, abbreviated function templates have been added, which are extremely useful, but sometimes difficult to point out in listings. If you ever see auto in a function parameter, then it is actually a function template. However, there are also gaps: Modules unfortunately are not yet fully developed, so I cannot give you many tips on them. And while format is widely supported, this is not yet the case for print. Of course, there is nothing to be said against writing your program “traditionally.” In short, to me, that means that your program looks more like C than it could look. There’s nothing wrong with that, of course. Some of the best programs are written in C. Nevertheless, if you start a project today and decide to use a programming language translated into machine code, you’d be better off using C++. Because something is happening in the language—or rather, something has happened. With C++23, you have a language that supports you in writing good programs in an up-to-date way. This means that your programs are fast, error resistant, and maintainable. You can program productively.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: C++, The Comprehensive Guide
نظرات کاربران