İki sınıfım var. Birinci sınıf bir şey yap ve sonra ikinci sınıfın yöntemini çağır. Birinci sınıfın her yöntemi bunu yapar. Bazı makro kullanarak kod uygulamasının otomatikleştirilmesi mümkün mü?C++ işlev adını makroya iletmek ve çağırarak
Örnek:
class A
{
void Do1()
{
Do task x
ClassB b;
b.Do1();
Do task y
}
void Do2()
{
Do task x
ClassB b;
b.Do2();
Do task y
}
}
bu şekilde uygulamak mümkün mü? Bu işe yaramıyor, ama benzer bir şey.
#define VOID_FUNC(name) \
Do task x;\
ClassB b;\
b.##name##();\
Do task y;
class A
{
void Do1()
{
VOID_FUNC(__FUNCTION__);
}
void Do2()
{
VOID_FUNC(__FUNCTION__);
}
}
ama şablonlarını kullanmak için şirin bir yol olacağını, 'std :: bind', ve 'std :: function'. Bunu çizen bir cevap vermeyi yeğlerim. – Bathsheba
Sorduğun şeyi yaratmanın kolay bir yolu yok gibi görünüyor ve çok kolay olmayan yollar gerçekten hızlı bir şekilde çirkinleşiyor; Bunu neden yapmak istediğinizi açıklarsanız size yardımcı olabilir, çünkü amacınızı gerçekleştirmenin daha iyi bir yolu olabilir mi? Sınıfın kullandığı bazı kaynak türlerini yöneten, görev x'in kaynağı alacağı ve görevi bırakacağı mevcut bir sınıfın etrafına bir sarıcı yazmak isteyebilirsiniz. Bana gelen bir fikir, C++ Standart Kitaplığı'nın genellikle günlüğe kaydetme gibi şeylerde bile uyarlanabilen özel ayırma araçlarına izin vermesidir. –