Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวแปรอินไลน์ทำงานใน C++/C++17 อย่างไร


ใน C ++ เราสามารถใช้คำสำคัญแบบอินไลน์สำหรับฟังก์ชันได้ ในเวอร์ชัน C++ 17 แนวคิดตัวแปรอินไลน์ได้มาถึงแล้ว

ตัวแปรอินไลน์สามารถกำหนดได้ในหลายหน่วยการแปล นอกจากนี้ยังเป็นไปตามกฎคำจำกัดความเดียว หากมีการกำหนดไว้มากกว่าหนึ่งครั้ง คอมไพเลอร์จะรวมทั้งหมดเข้าเป็นอ็อบเจกต์เดียวในโปรแกรมสุดท้าย

ใน C++ (ก่อนเวอร์ชัน C++17) เราไม่สามารถเริ่มต้นค่าของตัวแปรสแตติกได้โดยตรงในคลาส เราต้องกำหนดไว้นอกชั้นเรียน

โค้ดตัวอย่าง

#include<iostream>
using namespace std;
class MyClass {
   public:
      MyClass() {
         ++num;
      }
      ~MyClass() {
         --num;
      }
      static int num;
};
int MyClass::num = 10;
int main() {
   cout<<"The static value is: " << MyClass::num;
}

ผลลัพธ์

The static value is: 10
In C++17, we can initialize the static variables inside the class using inline variables.

โค้ดตัวอย่าง

#include<iostream>
using namespace std;
class MyClass {
   public:
      MyClass() {
         ++num;
      }
      ~MyClass() {
         --num;
      }
      inline static int num = 10;
};
int main() {
   cout<<"The static value is: " << MyClass::num;
}

ผลลัพธ์

The static value is: 10