شروع دوره آزمایشی رایگان
Searching...
SoBrief
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
زبان برنامه‌نویسی C++

زبان برنامه‌نویسی C++

اثر بیارنه استراوستروپ 1986 1030 صفحه
4.10
۴٬۰۰۰+ امتیاز
گوش دادن
۳ روز دسترسی کامل رایگان
قفل گوش دادن و امکانات بیشتر را باز کنید!
ادامه

نکات کلیدی

۱. زبان C++: ابزاری برای انتزاعات زیبا و کارآمد

زبان C++ برای توسعه و استفاده از انتزاعات زیبا و کارآمد طراحی شده است.

دوگانگی ماهیت. C++ به گونه‌ای طراحی شده که فاصله میان دسترسی سطح پایین به سخت‌افزار و حوزه‌های مسئله سطح بالا را پر کند. این زبان کارایی زبان C را در برنامه‌نویسی سیستم‌ها به ارث برده و در عین حال مکانیزم‌های قدرتمند انتزاعی را که از زبان Simula الهام گرفته شده‌اند، افزوده است. هدف ارائه زبانی است که هم سریع باشد و هم بیانگر، به طوری که برنامه‌نویسان بتوانند مفاهیم را مستقیماً در کد بازنمایی کنند.

  • نگاشت مستقیم به سخت‌افزار
  • مکانیزم‌های انتزاعی مقرون‌به‌صرفه
  • زبان چندمنظوره
  • گرایش به برنامه‌نویسی سیستم‌ها

بدون سربار اضافی. یکی از اصول بنیادین طراحی C++ اصل «صفر سربار» است: شما برای ویژگی‌هایی که استفاده نمی‌کنید هزینه‌ای پرداخت نمی‌کنید. امکانات زبان و انتزاعات پایه به گونه‌ای طراحی شده‌اند که به اندازه کد دست‌نویس کارآمد باشند. این موضوع برای برنامه‌های حساس به عملکرد و نرم‌افزارهای زیرساختی حیاتی است.

  • کارایی در اولویت است
  • هزینه ضمنی برای ویژگی‌های استفاده‌نشده وجود ندارد
  • امکان استفاده در محیط‌های محدود منابع

بیان ایده‌ها. هدف زبان کمک به برنامه‌نویسان برای بیان واضح و مستقیم ایده‌ها در کد است. این شامل بازنمایی مفاهیم به صورت نوع‌ها، روابط به صورت سلسله‌مراتب یا پارامتری‌سازی، و نگه‌داشتن ایده‌های مستقل به صورت جداگانه است. ترکیب سبک‌های مختلف برنامه‌نویسی برای رسیدن به بهترین راه‌حل‌ها تشویق می‌شود.

  • بیان مستقیم ایده‌ها
  • بازنمایی روابط
  • نگه‌داشتن ایده‌های مستقل جداگانه
  • ساده‌سازی ایده‌های ساده

۲. C++ مدرن (C++11) زبانی بهتر است

C++ حس زبانی نو را دارد.

تحول چشمگیر. زبان C++ طی سال‌ها تحولات چشمگیری داشته است که مهم‌ترین آن‌ها استاندارد C++11 است. این تغییرات C++ را به ابزاری قدرتمندتر و پالایش‌یافته‌تر برای نوشتن نرم‌افزار با کیفیت تبدیل کرده‌اند. C++ مدرن امکان بیان ایده‌ها را به شکلی واضح‌تر، ساده‌تر و مستقیم‌تر فراهم می‌کند.

  • مقایسه C++11 با C++98
  • افزایش قابلیت بیان
  • بهبود ایمنی و عملکرد

ویژگی‌های کلیدی. C++11 مجموعه‌ای از ویژگی‌ها را معرفی کرد که نحوه نوشتن و استفاده از C++ را به طور بنیادین تغییر دادند. این ویژگی‌ها شامل پشتیبانی بهتر از همزمانی، مدیریت منابع، برنامه‌نویسی عمومی و امکانات نحوی برای کاهش کدهای تکراری است.

  • پشتیبانی از همزمانی (std::thread، std::mutex)
  • معنای انتقال (std::move، مراجع rvalue)
  • اشاره‌گرهای هوشمند (unique_ptr، shared_ptr)
  • توابع لامبدا
  • auto و constexpr
  • لیست‌های مقداردهی اولیه

پذیرش سبک‌های مدرن. برنامه‌نویسان به شدت تشویق می‌شوند که از ویژگی‌ها و سبک‌های C++ مدرن استفاده کنند. پایبندی به سبک‌های قدیمی C++98 یا C منجر به کدی با کیفیت پایین‌تر، نگهداری دشوارتر و احتمالاً عملکرد کمتر خواهد شد. استاندارد تضمین سازگاری رو به عقب را می‌دهد، اما پیشرفت ضروری است.

۳. کلاس‌ها: پایه انتزاع

ویژگی مرکزی زبان C++ کلاس است.

نوع‌های تعریف‌شده توسط کاربر. کلاس‌ها مکانیزم اصلی برای ایجاد نوع‌های تعریف‌شده توسط کاربر هستند که مفاهیم حوزه مسئله را مستقیماً در کد بازنمایی می‌کنند. مجموعه‌ای مناسب از کلاس‌ها برنامه را قابل فهم‌تر، قابل استدلال‌تر و قابل تغییرتر می‌کند.

  • بازنمایی مفاهیم به صورت نوع‌ها
  • پایه مکانیزم‌های انتزاع
  • بهبود وضوح و نگهداری کد

کپسوله‌سازی. کلاس‌ها امکان تمایز بین رابط عمومی (آنچه کاربران می‌بینند و استفاده می‌کنند) و جزئیات پیاده‌سازی خصوصی (اعضای داده و توابع کمکی) را فراهم می‌کنند. این امر پنهان‌سازی داده، تضمین استفاده منسجم از داده‌ها و امکان تغییر پیاده‌سازی بدون تأثیر بر کد کاربر را ممکن می‌سازد.

  • رابط عمومی
  • پیاده‌سازی خصوصی
  • پنهان‌سازی داده
  • تفکیک مسئولیت‌ها

سازنده‌ها و نابودگرها. سازنده‌ها نحوه مقداردهی اولیه اشیاء را تعریف می‌کنند و تضمین می‌کنند که اشیاء در هنگام ایجاد در وضعیت معتبری قرار دارند. نابودگرها عملیات پاک‌سازی هنگام تخریب شیء را تعریف می‌کنند که برای آزادسازی منابع حیاتی است. این جفت سازنده/نابودگر اساس تکنیک‌های مدیریت منابع مانند RAII است.

  • مقداردهی اولیه تضمین‌شده
  • کسب منابع (سازنده‌ها)
  • آزادسازی منابع (نابودگرها)
  • نامعادلات کلاس

۴. مدیریت منابع: RAII و اشاره‌گرهای هوشمند

ترکیب سازنده/نابودگر پایه بسیاری از تکنیک‌های زیبا است.

اصل RAII. کسب منابع همان مقداردهی اولیه است (RAII) تکنیکی بنیادین در C++ است که در آن کسب منابع به مقداردهی اولیه اشیاء (سازنده‌ها) و آزادسازی منابع به تخریب اشیاء (نابودگرها) وابسته است. این تضمین می‌کند که منابع حتی در صورت پرتاب استثنا یا خروج زودهنگام از تابع به درستی مدیریت شوند.

  • کسب منابع در سازنده‌ها
  • آزادسازی منابع در نابودگرها
  • پاک‌سازی خودکار هنگام خروج از حوزه
  • ایمنی در برابر استثنا

جلوگیری از نشت‌ها. RAII به جلوگیری از نشت منابع (مانند نشت حافظه) و سایر خطاهای مدیریت منابع (حذف زودهنگام، حذف دوگانه) کمک می‌کند. با کپسوله‌سازی مالکیت منابع درون اشیاء، کامپایلر پاک‌سازی را به صورت خودکار انجام می‌دهد.

  • حذف استفاده مستقیم از new و delete
  • جلوگیری از نشت حافظه
  • مدیریت فایل‌ها، قفل‌ها، نخ‌ها و غیره

اشاره‌گرهای هوشمند. unique_ptr و shared_ptr اشاره‌گرهای هوشمند کتابخانه استاندارد هستند که با استفاده از RAII حافظه تخصیص‌یافته پویا را مدیریت می‌کنند. unique_ptr مالکیت انحصاری و shared_ptr مالکیت مشترک با شمارش مراجع را فراهم می‌کند. این‌ها به جای اشاره‌گرهای خام برای مدیریت اشیاء روی پشته ترجیح داده می‌شوند.

  • unique_ptr (مالکیت انحصاری)
  • shared_ptr (مالکیت مشترک)
  • آزادسازی خودکار حافظه
  • جلوگیری از فراخوانی دستی delete

۵. قالب‌ها: امکان برنامه‌نویسی عمومی

قالب، کلاسی یا تابعی است که با مجموعه‌ای از نوع‌ها یا مقادیر پارامتری می‌شود.

پارامتری‌سازی زمان کامپایل. قالب‌ها امکان تعریف کلاس‌ها، توابع و نام‌های نوع پارامتری‌شده با نوع‌ها، مقادیر یا قالب‌های دیگر را فراهم می‌کنند. این امکان نوشتن کدی را می‌دهد که با انواع مختلف کار می‌کند بدون اینکه کارایی کاهش یابد.

  • پارامتری‌سازی بر اساس نوع یا مقدار
  • چندریختی زمان کامپایل
  • تولید کد

برنامه‌نویسی عمومی. قالب‌ها پایه برنامه‌نویسی عمومی در C++ هستند که بر طراحی الگوریتم‌ها و ساختارهای داده‌ای تمرکز دارد که با هر نوعی که شرایط خاصی را داشته باشد (مفاهیم) کار می‌کنند. این امکان نوشتن کدی بسیار قابل استفاده مجدد، ایمن از نظر نوع و کارآمد را فراهم می‌کند.

  • طراحی الگوریتم‌های عمومی
  • کار با انواع مختلف
  • مفاهیم (شرایط روی آرگومان‌ها)

کارایی. قالب‌ها مکانیزمی زمان کامپایل هستند، به این معنی که استفاده از آن‌ها معمولاً سربار زمان اجرا ندارد و معادل کد دست‌نویس است. این از طریق تکنیک‌هایی مانند درون‌خطی‌سازی و محاسبات زمان کامپایل حاصل می‌شود.

  • صفر سربار زمان اجرا
  • امکان درون‌خطی‌سازی
  • محاسبات زمان کامپایل

۶. کتابخانه استاندارد: جعبه‌ابزار ضروری شما

هیچ برنامه مهمی صرفاً با زبان برنامه‌نویسی خام نوشته نمی‌شود.

اجزای ضروری. کتابخانه استاندارد مجموعه‌ای جامع از اجزای بنیادین را فراهم می‌کند که برای تقریباً هر برنامه C++ ضروری هستند. این‌ها شامل کانتینرها، الگوریتم‌ها، امکانات ورودی/خروجی، ابزارها و پشتیبانی از همزمانی است.

  • کانتینرها (vector، list، map، set)
  • الگوریتم‌ها (sort، find، copy، unique)
  • جریان‌های ورودی/خروجی (cin، cout، cerr)
  • ابزارها (pair، tuple، اشاره‌گرهای هوشمند، زمان)
  • پشتیبانی از همزمانی

پایه. کتابخانه استاندارد خود به زبان C++ نوشته شده است که قدرت زبان را نشان می‌دهد و الگویی برای طراحی خوب C++ است. این کتابخانه پایه مشترکی برای سایر کتابخانه‌ها و برنامه‌ها فراهم می‌کند و قابلیت حمل و همکاری را ترویج می‌کند.

  • نوشته شده به زبان C++
  • الگویی برای طراحی خوب
  • ترویج قابلیت حمل
  • امکان همکاری

ترجیح به استاندارد. برنامه‌نویسان به شدت تشویق می‌شوند که هر زمان ممکن از اجزای کتابخانه استاندارد استفاده کنند تا از بازآفرینی آن‌ها جلوگیری شود. اجزای استاندارد به خوبی طراحی شده، بهینه و به طور گسترده در دسترس و شناخته شده‌اند که هزینه نگهداری را کاهش و کیفیت کد را افزایش می‌دهد.

  • از چرخ دوباره اختراع نکنید
  • طراحی شده و بهینه
  • در دسترس و شناخته شده

۷. همزمانی: پشتیبانی داخلی از پردازش موازی

همزمانی – اجرای چند وظیفه به طور همزمان – به طور گسترده برای افزایش توان عملیاتی (با استفاده از چند پردازنده برای یک محاسبه) یا بهبود پاسخگویی (اجازه دادن به پیشرفت بخشی از برنامه در حالی که بخش دیگر منتظر پاسخ است) استفاده می‌شود.

ویژگی مدرن. C++ پشتیبانی قوی، قابل حمل و ایمن از نظر نوع برای برنامه‌نویسی همزمان دارد که نیازهای سخت‌افزارهای چند هسته‌ای مدرن را برآورده می‌کند. این افزوده مهمی در C++11 است.

  • پشتیبانی داخلی
  • قابل حمل و ایمن از نظر نوع
  • پاسخ به پردازنده‌های چند هسته‌ای

نخ‌ها و وظایف. کتابخانه مدیریت سطح پایین نخ‌ها (std::thread) و انتزاعات سطح بالاتر مبتنی بر وظیفه (std::future، std::async) را فراهم می‌کند. نخ‌ها فضای آدرس مشترک دارند که نیازمند هماهنگی دقیق برای جلوگیری از رقابت داده است.

  • std::thread برای نخ‌های سیستمی
  • فضای آدرس مشترک
  • همزمانی مبتنی بر وظیفه (std::async)

هماهنگی. مکانیزم‌هایی مانند میوتکس‌ها (std::mutex) و متغیرهای شرطی (std::condition_variable) برای مدیریت دسترسی به داده‌های مشترک و هماهنگی نخ‌ها فراهم شده‌اند. عملیات اتمی هم هماهنگی دقیق و بدون قفل برای انواع ساده ارائه می‌دهد.

  • میوتکس‌ها و قفل‌ها
  • متغیرهای شرطی
  • عملیات اتمی
  • جلوگیری از رقابت داده

۸. تسلط بر نوع‌ها و امکانات پایه

هر نام و هر عبارت دارای نوعی مرتبط است.

بلوک‌های سازنده بنیادین. درک نوع‌های داخلی C++ (int، double، char، bool)، نحوه اعلام متغیرها، قواعد حوزه دید و دستورات کنترل جریان پایه (if، switch، for، while) اساس همه برنامه‌های C++ را تشکیل می‌دهد. این عناصر از C به ارث رسیده و توسعه یافته‌اند.

  • نوع‌های داخلی
  • اعلام و حوزه دید
  • دستورات کنترل جریان
  • عبارات و عملگرها

ایمنی نوع. C++ زبانی با نوع ایستا است، به این معنی که نوع‌ها در زمان کامپایل بررسی می‌شوند که به کشف زودهنگام خطاها کمک می‌کند. ویژگی‌هایی مانند auto برای استنتاج نوع و constexpr برای ثابت‌های زمان کامپایل ایمنی نوع و قابلیت بیان را افزایش می‌دهند.

  • بررسی نوع ایستا
  • کشف زودهنگام خطاها
  • auto برای استنتاج نوع
  • constexpr برای ثابت‌های زمان کامپایل

اشاره‌گرها و مراجع. C++ اشاره‌گرها و مراجع را برای دسترسی غیرمستقیم به حافظه فراهم می‌کند. این امکانات قدرتمند نیازمند مدیریت دقیق هستند، به‌ویژه هنگام مدیریت مالکیت منابع. اشاره‌گرهای هوشمند به جای اشاره‌گرهای خام برای مدیریت حافظه پشته ترجیح داده می‌شوند.

  • اشاره‌گرها و مراجع
  • دسترسی غیرمستقیم به حافظه
  • اشاره‌گرهای هوشمند برای مالکیت

۹. ترکیب سبک‌های برنامه‌نویسی برای راه‌حل‌های مؤثر

بهترین (قابل نگهداری‌ترین، خواناترین، کوچک‌ترین، سریع‌ترین و غیره) راه‌حل برای اکثر مسائل غیرساده معمولاً ترکیبی از جنبه‌های این سبک‌ها است.

ترکیب، نه انحصار. C++ برای پشتیبانی از چندین سبک برنامه‌نویسی طراحی شده است: رویه‌ای، انتزاع داده، شیءگرا و برنامه‌نویسی عمومی. ویژگی‌های زبان اجازه می‌دهد این سبک‌ها به صورت ترکیبی استفاده شوند و مؤثرترین راه‌حل‌ها اغلب ترکیبی از چند پارادایم هستند.

  • برنامه‌نویسی رویه‌ای
  • انتزاع داده
  • برنامه‌نویسی شیءگرا
  • برنامه‌نویسی عمومی

دوری از دگماتیزم. تمرکز صرف بر یک سبک یا دیدن C++ به عنوان زبان «ترکیبی» به معنای نادیده گرفتن قدرت ترکیب آن است. زبان ابزارهایی فراهم می‌کند که می‌توانند به شکلی زیبا و ترکیبی برای پشتیبانی از تکنیک‌های متنوع به کار روند.

  • زبان از ترکیب‌ها پشتیبانی می‌کند
  • دوری از تفکر تک‌پارادایمی

طراحی عملی. برنامه‌نویسی مؤثر در C++ شامل انتخاب ابزارهای مناسب (ویژگی‌های زبان، اجزای کتابخانه استاندارد) از مجموعه موجود و ترکیب آن‌ها به شکل مناسب برای مسئله است. این نیازمند درک نقاط قوت و ضعف رویکردهای مختلف و نحوه تعامل آن‌هاست.

  • انتخاب ابزارهای مناسب
  • ترکیب مؤثر ویژگی‌ها
  • تمرکز بر طراحی و تکنیک‌ها

۱۰. مدیریت خطا: استثناها و تضمین‌ها

مفهوم استثنا برای انتقال اطلاعات از نقطه‌ای که خطا تشخیص داده می‌شود به نقطه‌ای که می‌توان آن را مدیریت کرد، ارائه شده است.

تفکیک مسئولیت‌ها. استثناها (throw، catch) مکانیزمی برای جدا کردن کدی که خطا را تشخیص می‌دهد از کدی که آن را مدیریت می‌کند فراهم می‌کنند. این موضوع به ویژه در برنامه‌ها و کتابخانه‌های بزرگ مفید است که تشخیص‌دهنده نمی‌داند چگونه بازیابی کند و مدیریت‌کننده به آسانی نمی‌تواند خطا را تشخیص دهد.

  • throw برای گزارش خطاها
  • catch برای مدیریت خطاها
  • جداسازی تشخیص و مدیریت

ایمنی استثنا. کتابخانه استاندارد تضمین‌هایی درباره وضعیت اشیاء هنگام پرتاب استثنا ارائه می‌دهد. تضمین پایه حفظ نامعادلات و جلوگیری از نشت منابع است. تضمین قوی اطمینان می‌دهد که عملیات یا موفق است یا هیچ تأثیری ندارد.

  • تضمین پایه (بدون نشت، وضعیت معتبر)
  • تضمین قوی (همه یا هیچ)
  • مشخصه noexcept

ادغام با RAII. مدیریت استثنا به طور تنگاتنگی با RAII (کسب منابع همان مقداردهی اولیه است) ادغام شده است. این تضمین می‌کند که منابع کسب‌شده توسط اشیاء هنگام بازگشت پشته در زمان انتشار استثنا به درستی آزاد شوند، از نشت جلوگیری کرده و کد پاک‌سازی را ساده می‌کند.

  • RAII برای پاک‌سازی
  • فراخوانی نابودگرها هنگام بازگشت پشته

آخرین بروزرسانی:

Report Issue

خلاصه نقدها

4.10 از 5
میانگین ۴٬۰۰۰+ امتیاز از Goodreads و Amazon.

کتاب «زبان برنامه‌نویسی ++C» به‌عنوان مرجع نهایی و جامع این زبان برنامه‌نویسی شناخته می‌شود که توسط خالق آن نگارش یافته است. این اثر به‌خاطر پوشش کامل مطالب و ارائه‌ی دیدگاه‌های ارزشمند مورد تحسین قرار گرفته است، اما بسیاری از منتقدان بر این باورند که برای مبتدیان مناسب نیست. کتاب به‌عنوان متنی فشرده و گاه پرحجم توصیف شده و بیشتر به‌عنوان یک منبع مرجع کاربرد دارد تا یک ابزار آموزشی. برنامه‌نویسان باتجربه از عمق مطالب و جزئیات فنی آن استقبال می‌کنند. برخی نقدهایی به سبک نگارش و ساختار کتاب وارد کرده‌اند، در حالی که عده‌ای دیگر آن را برای تسلط بر زبان ++C ضروری می‌دانند. در مجموع، این کتاب به‌عنوان منبعی حیاتی برای حرفه‌ای‌ها شناخته می‌شود، اما برای تازه‌کاران چالشی جدی به شمار می‌آید.

Your rating:
4.49
124 امتیاز
Want to read the full book?

درباره نویسنده

بیارنه استراوستروپ، دانشمند برجسته‌ی دانمارکی در حوزه‌ی علوم کامپیوتر، بیشتر به‌عنوان خالق زبان برنامه‌نویسی C++ شناخته می‌شود. او در سال ۱۹۷۹ و در زمان فعالیتش در آزمایشگاه‌های بل، زبان C++ را توسعه داد تا قابلیت‌های زبان C را برای برنامه‌نویسی در مقیاس بزرگ‌تر بهبود بخشد. استراوستروپ نقش بسیار مهمی در تکامل این زبان ایفا کرده است؛ او نویسنده‌ی چندین ویرایش از کتاب «زبان برنامه‌نویسی C++» بوده و در تدوین استاندارد ISO C++ نیز مشارکت داشته است. او به‌خاطر دستاوردهایش جوایز متعددی از جمله جایزه‌ی کارآفرین کامپیوتر انجمن IEEE دریافت کرده است. استراوستروپ همچنین در دانشگاه‌های تگزاس ای اند ام و کلمبیا به تدریس پرداخته و همچنان در زمینه‌ی علوم کامپیوتر و طراحی زبان‌های برنامه‌نویسی تأثیرگذار است.

کتاب‌های دیگر از بیارنه استراوستروپ

Follow
گوش دادن
Now playing
زبان برنامه‌نویسی C++
0:00
-0:00
Now playing
زبان برنامه‌نویسی C++
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
امروز: دسترسی فوری
گوش دادن به خلاصه کامل بیش از ۲۶,۰۰۰ کتاب. بیش از ۱۲,۰۰۰ ساعت محتوای صوتی!
روز دوم: یادآوری دوره آزمایشی
به شما اطلاع می‌دهیم که دوره آزمایشی‌تان به‌زودی پایان می‌یابد.
روز سوم: شروع اشتراک شما
مبلغ اشتراک در تاریخ Jun 13,
کسر می‌شود. هر زمان قبل از آن می‌توانید لغو کنید.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel