ในโจทย์นี้ เราจะเห็นวิธีพิมพ์ "Hello World" ออกมาที่คอนโซล แต่เรา **ไม่สามารถเขียนโค้ดอะไรในฟังก์ชัน main ได้เลย**
ปัญหานี้แก้ได้ 2 วิธี:
วิธีที่ 1: ใช้ตัวแปร Global รับค่าคืนจาก printf()
สร้างตัวแปร global แล้วเก็บค่าที่คืนมาจาก printf() ไว้ เมื่อ printf() ทำงาน จะพิมพ์ข้อความออกมา
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
int a = printf("Hello World");
int main() {
// main ว่างเปล่า
}
ผลลัพธ์
Hello World
วิธีที่ 2: ใช้ Constructor ของคลาส Global Object
สร้างคลาส และพิมพ์ข้อความใน constructor จากนั้นสร้างอ็อบเจ็กต์ของคลาสนั้นในระดับ global ดังนั้นเมื่อโปรแกรมเริ่มต้น อ็อบเจ็กต์จะถูกสร้าง เรียก constructor อัตโนมัติ และพิมพ์ข้อความออกมา
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
class my_class {
public:
my_class() {
cout << "Hello World";
}
};
my_class my_obj; // global object
int main() {
// main ว่างเปล่า
}
ผลลัพธ์
Hello World