تولید کننده آموزش و محصولات مبتنی بر برنامه نویسی مدرن

۱۰ مطلب با موضوع «اموزش :: CPP :: base» ثبت شده است

انواع معماری اتصالات سیگنال و اسلات در کیوت بین c++ و qml

با سلام خدمت دوستان عزیز چندی پیش در پی مسائلی که برام پیش اومد نیاز شد توی یک برنامه که هسته سی پلاس پلاس داره و کاملا با سی پلاس پلاس هست از کیو ام ال استفاده کنم ولی جالب بود دو روشی که قبلا میشناختم برای این کار جوابگوی نیازم نبود اما اجازه بدید اول روش های قبلی رو با مثال توضیح بدم برای دوستانی که اون رو روش رو بلد نیستند :

 

ادامه مطلب...
۰۶ آبان ۹۷ ، ۰۱:۰۶ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

دانلود نسخه افلاین سی پلاس پلاس ویژوال استدیو (2 و خورده ای گیگ)

با سلام

همانطور که اطلاع دارید نسخه 2017 ویژوال استدیو با توجه به ابزار های بی‌کاربرد و کم کاربردی مانند ابزار های برنامه نویسی زبان‌های شارپ دار مانند F# و B# و c# و ... حجم بسیار بالایی دارد که دانلود و نصب آن را به شدت سخت کرده .

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

 

برای دانلود فایل و اطلاعات بیشتر میتوانید به لینک زیر از سایت رسمی خود ویژوال استدیو مراجعه کنید :

Create an offline installation of Visual Studio 2017

موفق باشید.

۰۴ مهر ۹۷ ، ۲۲:۱۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

هزار و یک نکته در سی پلاس پلاس نکته سوم (کلمه کلیدی noreturn)

کلمه کلیدی noreturn برای مشخص کردن این نکته که تابع مقداری به صدا زننده باز نمیگرداند استفاده می‌شود. دقت کنید باز نگرداندن مقدار با برگرداندن مقدار void تفاوت دارد. این کلمه کلیدی برای توابعی که هیچ مقداری به صدا زننده فراخوانی نمی‌کنند استفاده می‌شود. ( مانند توابعی که برنامه را می‌بندند یا توابعی که حاوی حلقه بینهایت هستند یا توابعی که throw exceptions می‌کنند.

استفاده از این کلمه کلیدی به کامپایلر کمک می‌کند تا بهینه‌سازی هایی را انجام دهد و همینطور هشدارهای بهتری تولید کند.برای مثال اگر تابع f مقداری بازگشت ندهد و از کلمه کلیدی noreturn استفاده کنید کامپایلر میتواند در کد

f();

g();

به شما در مورد اجرا نشدن تابع g هشدار دهد و همینطور کامپایلر متوجه می‌شود که نباید برای فراموش کردن استفاده از کلمه کلیدی return برای بازگشت دادن مقدار هشداری بدهد.

مثال استفاده :

 

۰۹ شهریور ۹۷ ، ۱۲:۰۳ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

اشاره‌گر هوشمند از وکتور یا وکتوری از اشاره‌گر هوشند ؟

داشتم کد میزدم به ذهنم رسید که وکتور رو اگر عادی بفرستم به یه تابع همش کپی میشه دونه دونه و اصلا بهینه نیست بعد به ذهنم رسید خب میام یه اشاره‌گر هوشمند از وکتور رو میفرستم که وکتور کپی و باز سازی نشه ولی بعد به ذهنم رسید که میشه یه وکتور از اشاره‌گر های هوشمند ایجاد کرد و فرستاد بعدش برای این که ببینم کدوم روش بهتری هست یه کد کوچیک زدم که براتون میذارم تا خودتون تست کنید :

 

 

اینم خروجی کد :

created : 1
destroyed : 1
destroyed : 1
created : 2
destroyed : 2
created : 3
destroyed : 3
destroyed : 2
destroyed : 1

نتیجه گیری هم به عهده خودتون

موفق باشید

لینک کوتاه مطلب برای اشتراک گذاری :

http://moderncpp.ir/post/94

۰۳ بهمن ۹۶ ، ۱۶:۰۵ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

هزار و یک نکته در سی پلاس پلاس نکته دوم (اعضای استاتیک و ارث بری )

همانطور که اطلاع دارید در برنامه سی پلاس پلاس از هر عضو استاتیک فقط یک نمونه موجود است و به ازای ساختن اشیای بیشتر از کلاس عضو استاتیک تکثیر نمی‌شود اما اگر از یک کلاس که داری عضو استاتیک است به ارث ببریم چه اتفاقی می افتد ؟

خب اجازه بدهید یا یک تکه کد این مورد را بررسی کنیم

ادامه مطلب...
۰۹ دی ۹۶ ، ۰۲:۱۷ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

هزار و یک نکته در سی پلاس پلاس نکته اول (وکتور و اسمارت پوینتر ها )

خب دوستان تصمیم دارم در سی پست های هزار و یک نکته در سی پلاس پلاس براتون نکات جالبی که بر میخورم توی مطالعات یا کارهایی که انجام میدم بر اساس تجربه شخصیم رو منتشر کنم .

 

همونطور که میدونید وقتی یک وکتور درست میکنیم برامون یک آرایه درست میکنه و وقتی عنصری بهش اضافه میکنیم اگر از ظرفیتش بزنیم بالا یعنی ارایه ای که درست کرده پر شده باشه و بخوایم عضو جدید اضافه کنیم میاد یک ارایه با اندازه یکی بزرگ تر از ارایه قبلی درست میکنه و تمام عناصر قبلی رو کپی میکنه توی ارایه جدید و بعد عنصری که میخوایم اضافه کنیم رو هم اضافه میکنه و این برای اضافه یا حذف کردن هر عضو انجام میشه مگر این که یه تعداد مشخص رو براش رزرو کنیم مثلا 100 تا ولی باز از 100 که بزنیم بالا جریان همونه خب حالا این حذف و کپی که انجام میشه برامون خیلی هزینه داره از طرفی اگر کانستراکتور داشته باشیم برای کلاسی که ازش وکتور ساخنیم این برامون خیلی هزینش بیشتر میشه من داشتم یه چیزی رو تست میکردم برام جالب بود و اونم اینه که مثلا بجای این که بیام یک وکتور از کلاس Test درست کنم بجاش اومدم یک وکتور از یونیک پی تی ار استفاده کردم دیگه دیستراکتو ها و کانستراکتور ها فراخوانی نشد و برای ریختن اشاره گرهام توی وکتور هم از move استفاده کردم اینجا یه کد کوچیک میذارم که خودتون هم تست کنید :

 

ادامه مطلب...
۰۷ دی ۹۶ ، ۰۱:۲۳ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

آماده سازی سیستم برای گرفتن خروجی اندروید با کیوت روی لینوکس اوبونتو

با سلام خدمت دوستان عزیز

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

خب بریم سر اصل مطلب مطمئنا چون من تازه برگشتم روی لینوکس کامل لینوکسم خالی بود و هیچی نداشتم روش و اینم بگم که این آموزش برای خروجی روی لینوکس هست اگر دوست داشتید میتونید روش خروجی گرفتن روی ویندوز رو هم راحت پیدا کنید .

 

ادامه مطلب...
۱۰ آذر ۹۶ ، ۰۴:۱۸ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

چگونه کدهای ++C خود را مستند و سازمان‌دهی کنیم ؟

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

لینک دانلود مقاله

با آرزوی موفقیت روز افزون

۲۵ خرداد ۹۶ ، ۰۵:۵۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

نوشتن یونیکد در فایل با زبان سی پلاس پلاس

چند وقت پیش یکی از دوستان میخواست با سی پلاس پلاس حروف فارسی رو درون یک فایل بنویسه

همونطور که اطلاع دارید حروف انگلیسی اسکی هستند و هرکدوم یه کاراکتر یک بایتی جا میگیرند ولی حروف فارسی و کلا یونیکد هرکدوم دوتا کاراکتر یک بایتی یا به عبارتی یک کاراکتر دو بایتی فضا میگیرند به همین خاطر باید از wstring بجای string استفاده بشه که توی همون هدر string هست و برای استفاده از کاراکتر ها هم باید از wchar_t استفاده کنید که نسخه توسعه یافته char عادی است و از دیتا تایپ‌های خود C++ است من در کد زیر یک مثال از نوشتن یک کلمه فارسی و نوشتن یک حرف از آن به صورت 3 بار تکرار آماده کردم و البته طول کلمه رو هم نشون دادم و یکبار هم همون کلمه رو درون استرینگ عادی ریختم تا طولش رو مقایسه کنید :

 

#include <fstream>
#include <iostream>
#include <locale>
#include <string>
using namespace std;
int main()
{
  std::locale::global(std::locale(""));
  wofstream myfile("file.txt");
  wstring wideString = L"فارسی";
  string usualString = "فارسی";
  myfile << wideString;
  wchar_t myChar = wideString[0];
  myfile << myChar << myChar << myChar;
  myfile.close();
  clog << "usual String length :" << usualString.length() << endl
     << "wide string length : " << wideString.length() << endl;
  return 0;
}
۲۴ خرداد ۹۶ ، ۰۵:۲۱ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

آتش به اختیار

با سلام خدمت همه‌ی همراهان انقلابی و پیروان خط رهبری
این وبلاگ (سایت )  در راستای تحقق کلام رهبر «من به همه‌ی آن هسته‌های فکری و عملیِ جهادی، فکری، فرهنگی در سرتاسر کشور مرتّباً میگویم: هرکدام کار کنید؛ مستقل و به‌قول میدان جنگ، آتش‌به‌اختیار.»  تولید محتوا می‌کند .
امیدوارم قدم کوچکی در مسیر انقلاب و مسیر شهدا باشد .


آتش به اختیار
 
 
 
ما را دنبال کنید

Follow us

ModernCpp.ir
Aparat
Github
Linkedin
Email

لینک کانال سروش

۲۹ بهمن ۹۴ ، ۰۳:۰۸ ۱۰ نظر موافقین ۴ مخالفین ۰
بهنام صباغی