Soru basit ama bir çözüm bulamıyorum.İşaretçi için operatör dönüştürücüyü kullanın
class foo
{
public:
operator int()
{
return 5;
}
};
foo* a = new foo();
int b = a;
Bu davranışı uygulamak mümkün mü?
Soru basit ama bir çözüm bulamıyorum.İşaretçi için operatör dönüştürücüyü kullanın
class foo
{
public:
operator int()
{
return 5;
}
};
foo* a = new foo();
int b = a;
Bu davranışı uygulamak mümkün mü?
Yapamazsınız. Dönüşüm operatörlerinin bir sınıfın üyeleri olması gerekir, ancak foo*
kullanıcı tanımlı bir sınıf türü değil, bir işaretçi türüdür (ayrıca, int b = *a
çalışır).
Yapabileceğiniz en iyi şey, döküm işlemini yapan bir yardımcı işlev kullanmaktır.
Yapabilirsin, açıkça operatörü arayarak:
foo* a = new foo();
int b = a->operator int();