Tôi đang làm việc trong Visual Studio 2010, sử dụng mã C++. Những gì tôi đang cố gắng làm là thay đổi giá trị của một chỉ thị tiền xử lý trong thời gian chạy, không chắc chắn nếu nó có thể nhưng tôi đã cố gắng này ..Thay đổi giá trị của macro tại thời gian chạy
somefile.h
static int mValue = 0;
#define POO = mValue;
...
#if POO 0
//define class methods
#else
//define class methods differently
}
main.cpp
main()
{
//Code calls constructor and methods allowed when POO is 0
//Code increments mValue
//Code calls constructor and methods allowed when POO is 1
}
POO có thể thay đổi như thế nào để các đối tượng lớp sử dụng triển khai khác các phương pháp khác? Hoặc nếu không thể, cách tiếp cận khác là gì?
Bạn không thể thay đổi chỉ thị tiền xử lý khi chạy. Việc sử dụng một lớp cơ sở với các lớp dẫn xuất khác nhau có thể hoạt động, tùy thuộc vào vấn đề của bạn (khó mà nói được từ những gì bạn đã cho chúng ta thấy). – Yuushi