C++ auto

🔹 معرفی

  • کلمه‌ی کلیدی auto به کامپایلر میگه نوع متغیر رو به‌طور خودکار از مقدار اولیه حدس بزنه.

  • باعث میشه کد کوتاه‌تر و خواناتر بشه، مخصوصاً برای نوع‌های پیچیده مثل iterator ها.

🔹 مثال ساده

#include <iostream> using namespace std; int main() { auto age = 25; // کامپایلر → int auto price = 19.99; // کامپایلر → double auto name = "Ali"; // کامپایلر → const char* cout << age << endl; cout << price << endl; cout << name << endl; return 0; }

📌 خروجی:

25 19.99 Ali

نوع داده هر متغیر بر اساس مقدار اولیه تعیین میشه.

🔹 کار با حلقه‌ها

auto مخصوصاً در حلقه‌های for-each کاربردیه:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums = {1, 2, 3, 4}; for (auto n : nums) { // n رو به طور خودکار int می‌شناسه cout << n << " "; } return 0; }

📌 خروجی:

1 2 3 4

🔹 با اشاره‌گر و مرجع

int x = 10; auto* p = &x; // p → int* auto& r = x; // r → int& cout << *p << " " << r;

📌 خروجی:

10 10

🔹 محدودیت‌ها

  1. حتماً باید مقدار اولیه وجود داشته باشه:

    auto a; // ❌ خطا! بدون مقدار اولیه نوع رو تشخیص نمیده
  2. نوع بعد از تعیین ثابت است:

    auto x = 5; // int x = 5.5; // ✅ ولی مقدار 5.5 به int تبدیل میشه (اعشاری حذف میشه)

🔹 auto و const

const auto pi = 3.14159; // متغیر ثابت double

✅ خلاصه

  • auto نوع متغیر رو بر اساس مقدار اولیه به طور خودکار مشخص می‌کنه.

  • کد رو کوتاه و خوانا می‌کنه، مخصوصاً برای نوع‌های طولانی یا پیچیده.

  • نمی‌شه بدون مقداردهی اولیه استفاده کرد.