مقداردهی اعضای استاتیک کلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مقداردهی اعضای استاتیک کلاس

0 امتیاز
سلام.

تو c++ آیا راهی هست اعضای استاتیک کلاس را توی هدر همان زمان تعریف مقدار اولیه داد؟
سوال شده اردیبهشت 21, 1402  بوسیله ی Lori3 (امتیاز 857)   11 36 106

1 پاسخ

+1 امتیاز
 
بهترین پاسخ
مقداردهی اولیه درون خطی، همچنین به عنوان مقداردهی اولیه متغیر درون خطی شناخته می‌شود، ویژگی معرفی‌شده در C++17 است که به شما امکان می‌دهد تا اعضای داده استاتیک را در خود تعریف کلاس با مشخص‌کننده «inline» تعریف و مقداردهی اولیه کنید.
 
قبل از C++17، شما فقط می توانستید اعضای داده ایستا را در تعریف کلاس اعلام کنید و باید آنها را به طور جداگانه خارج از تعریف کلاس در یک فایل منبع تعریف می کردید. این می تواند منجر به تکرار کد شود و حفظ کلاس را دشوارتر کند.
 
با مقداردهی اولیه درون خطی، اکنون می توانید اعضای داده ایستا را در خود تعریف کلاس تعریف کنید و خواندن و حفظ کد خود را آسان تر می کند. علاوه بر این، مقداردهی اولیه درون خطی می‌تواند عملکرد بهتری را ارائه دهد، زیرا نیاز به تعریف جداگانه در یک فایل منبع را از بین می‌برد و به کامپایلر اجازه می‌دهد تا کد اولیه را بهتر بهینه کند.
 
در اینجا مثالی از استفاده از مقداردهی اولیه درون خطی برای تعریف و مقداردهی اولیه یک عضو داده ایستا آورده شده است:
 
class MyClass {
public:
    static inline int myStaticMember = 42; // inline initialization
};

 

 
در مثال بالا، عضو داده ایستا «myStaticMember» با مقدار «42» درون تعریف کلاس تعریف و مقداردهی اولیه شده است.
 
توجه داشته باشید که مقداردهی اولیه درون خطی را فقط می‌توان برای اعضای داده استاتیکی که دارای یک Constexpr یا مقدار دهی اولیه ثابت هستند استفاده کرد. برای اعضای داده استاتیک غیر ثابت، هنوز باید آنها را خارج از تعریف کلاس، در یک فایل پیاده سازی جداگانه تعریف و مقداردهی اولیه کنید.
پاسخ داده شده اردیبهشت 21, 1402 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد شهریور 8, 1402 بوسیله ی مصطفی ساتکی
...