++C چیست؟ آموزش کامل و جامع ++C
فهرست مطالب
++C چیست؟
++C یک زبان برنامهنویسی قدرتمند، همهمنظوره و شیگرا است که از زبان C مشتق شده است. این زبان به برنامهنویسان امکان میدهد تا برنامههای کارآمد با کنترل دقیق بر روی منابع سیستم بنویسند.
#include <iostream>
using namespace std;
int main() {
cout << "سلام دنیا!" << endl;
return 0;
}
تاریخچه ++C
++C در سال ۱۹۷۹ توسط بیارنه استروستروپ در آزمایشگاههای بل ایجاد شد. هدف اصلی، افزودن قابلیتهای برنامهنویسی شیگرا به زبان C بود.
ساختار پایه ++C
هر برنامه ++C از چند بخش اصلی تشکیل شده است:
// هدرها
#include <iostream>
#include <string>
// فضای نام
using namespace std;
// تعریف کلاس
class MyClass {
private:
string name;
public:
MyClass(string n) : name(n) {}
void display() {
cout << name << endl;
}
};
// تابع اصلی
int main() {
MyClass obj("مثال");
obj.display();
return 0;
}
انواع داده در ++C
++C انواع دادههای متنوعی را برای نیازهای مختلف برنامهنویسی ارائه میدهد.
انواع دادههای اصلی
// اعداد صحیح
int number = 42;
short smallNumber = 123;
long bigNumber = 123456789L;
// اعداد اعشاری
float decimal = 3.14f;
double preciseNumber = 3.141592653589;
// کاراکتر
char letter = 'A';
// منطقی
bool isTrue = true;
// رشته (از کتابخانه استاندارد)
string text = "متن نمونه";
برنامهنویسی شیگرا در ++C
برنامهنویسی شیگرا یکی از قدرتمندترین ویژگیهای ++C است که امکان سازماندهی بهتر کد را فراهم میکند.
class Animal {
private:
string name;
int age;
protected:
string species;
public:
// سازنده
Animal(string n, int a) : name(n), age(a) {}
// متدهای مجازی
virtual void makeSound() = 0;
// گترها و سترها
string getName() const { return name; }
void setName(string n) { name = n; }
};
class Cat : public Animal {
public:
Cat(string name, int age) : Animal(name, age) {
species = "گربه";
}
void makeSound() override {
cout << "میو میو!" << endl;
}
};
کتابخانه استاندارد قالب (STL)
STL مجموعهای از کلاسها و توابع قدرتمند است که کار با ساختمانهای داده و الگوریتمها را آسان میکند.
#include <vector>
#include <map>
#include <algorithm>
// استفاده از vector
vector<int> numbers = {1, 2, 3, 4, 5};
numbers.push_back(6);
// استفاده از map
map<string, int> ages;
ages["علی"] = 25;
ages["مریم"] = 30;
// استفاده از الگوریتمها
sort(numbers.begin(), numbers.end());
auto it = find(numbers.begin(), numbers.end(), 3);
مدیریت حافظه در ++C
مدیریت حافظه یکی از مهمترین جنبههای برنامهنویسی در ++C است. درک صحیح آن برای نوشتن برنامههای کارآمد ضروری است.
// تخصیص حافظه پویا
int* ptr = new int(42);
delete ptr; // آزادسازی حافظه
// آرایه پویا
int* arr = new int[100];
delete[] arr;
// اشارهگر هوشمند
#include <memory>
unique_ptr<int> smart_ptr(new int(42));
// نیازی به delete نیست
shared_ptr<int> shared(new int(100));
weak_ptr<int> weak = shared;
توابع در ++C
توابع در ++C میتوانند به شکلهای مختلفی تعریف و استفاده شوند.
// تابع معمولی
int add(int a, int b) {
return a + b;
}
// تابع با پارامتر پیشفرض
void print(string text = "سلام") {
cout << text << endl;
}
// تابع inline
inline int square(int x) {
return x * x;
}
// تابع با ارجاع
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
// تابع lambda
auto multiply = [](int x, int y) { return x * y; };
قالبها (Templates)
قالبها امکان نوشتن کد عمومی که با انواع داده مختلف کار میکند را فراهم میکنند.
// قالب تابع
template<typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
// قالب کلاس
template<typename T>
class Stack {
private:
vector<T> elements;
public:
void push(T const& value) {
elements.push_back(value);
}
T pop() {
T last = elements.back();
elements.pop_back();
return last;
}
};
بهترین شیوههای کدنویسی ++C
رعایت اصول و بهترین شیوههای کدنویسی در ++C برای توسعه نرمافزارهای با کیفیت ضروری است:
۱. مدیریت منابع
از RAII (Resource Acquisition Is Initialization) برای مدیریت خودکار منابع استفاده کنید.
۲. استفاده از اشارهگرهای هوشمند
به جای اشارهگرهای خام، از unique_ptr و shared_ptr استفاده کنید.
۳. رعایت اصول طراحی شیگرا
از اصول SOLID و الگوهای طراحی مناسب استفاده کنید.
ابزارهای مفید برای کار با ++C
محیطهای توسعه یکپارچه (IDE)
- Visual Studio
- CLion
- Code::Blocks
کامپایلرها
- GCC
- Clang
- MSVC
ابزارهای دیباگ و پروفایل
- GDB
- Valgrind
- Visual Studio Debugger