aşağıdaki hataNeden belirli bir işleve işaret etmek için bir işlev işaretçisi değişkeni atayamıyorum. Hata
"incompatibale türünden 'Adakçı (Adakçı :: *) (Adakçı, Adakçı)' 'Adakçı (Adakçı, Adakçı)' olarak atama" var altındadır benim TreeLeaf.h olarak
ben aşağıdaki kodu var benim TreeLeaf.cpp aşağıdaki kodu
class TreeLeaf
{
public:
void checkVaribleValue(string command);
int number;
bool isOperator = false;
TreeLeaf (TreeLeaf::*operation)(TreeLeaf var1, TreeLeaf var2);
static TreeLeaf add(TreeLeaf var1, TreeLeaf var2);
};
sahip
#include "TreeLeaf.h"
void TreeLeaf::checkVaribleValue(string command)
{
if(isdigit(command[0]) || (command[0] == '-' && isdigit(command[1])))
{
number = stoi(command);
}
else
{
switch(command[0])
{
case '+':
isOperator = true;// will used to know that that it operates on other leafs.
operation = add;
break;
}
}
}
TreeLeaf TreeLeaf::add(TreeLeaf var1, TreeLeaf var2)
{
//TODO check type for now just working with ints
TreeLeaf result;
result.number = var1.number + var2.number;
return result;
}
Ekleme işlemi yapmaya çalıştığımda (operation = add;
) hatayı alıyorum.
XCode 7.3 kullanıyorum.
dönüş değeri bir sınıftır, çünkü bu soru farklıdır olurdu. Sorunun bir sebebi olup olmadığından emin değildim. Diğer soru ise void dönüş türüyle ilgiliydi. –
@ πάντα conf Burada karışıklık olarak yeniden oylama yapmak, bir statik sınıf üyesi işlevinin bir üye işlevle aynı olmamasıdır. Duba buna değmez. – NathanOliver