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

Anonymous Classes (คลาสไร้ชื่อ) ใน C++


บทนำ

Anonymous Class คือคลาสที่ไม่มีชื่อ ไม่มี Constructor (แต่มี Destructor) และไม่สามารถใช้เป็นพารามิเตอร์หรือคืนค่าของฟังก์ชันได้

Syntax

class {
    // data members
    // member functions
} obj1, obj2; // ประกาศออบเจกต์ทันที

คุณสมบัติ

  • ไม่มีชื่อคลาส → ไม่มี Constructor
  • มี Destructor สำหรับปล่อยหน่วยความจำ
  • ไม่สามารถส่งเป็น argument หรือ return จากฟังก์ชันได้
  • ใช้ได้เฉพาะใน scope ที่ประกาศเท่านั้น

ตัวอย่างที่ 1: สร้างออบเจกต์เดียว

#include <iostream>
using namespace std;

class {
    int value;
public:
    void setData(int i) { this->value = i; }
    void printvalues() { cout << "Value: " << this->value << endl; }
} obj1;

int main() {
    obj1.setData(10);
    obj1.printvalues();
    return 0;
}

ผลลัพธ์

Value: 10

ตัวอย่างที่ 2: สร้างหลายออบเจกต์

#include <iostream>
using namespace std;

class {
    int value;
public:
    void setData(int i) { this->value = i; }
    void print() { cout << "Value: " << this->value << endl; }
} obj1, obj2;

int main() {
    cout << "Object 1\n";
    obj1.setData(10); obj1.print();
    cout << "Object 2\n";
    obj2.setData(12); obj2.print();  // ตัวอย่างต้นฉบับมี bug ใช้ obj1 แทน obj2
    return 0;
}

ผลลัพธ์

Object 1
Value: 10
Object 2
Value: 12