2013-05-25 47 views
-1

我有一個類,它包含一個函數在contstructor之前,它本身是空的,就這樣,所以我的類只包含函數和一些不那麼重要的元素。使用類內函數

如何從該功能調用該功能,但僅在需要時調用該功能? ClassName ObjectName,然後ObjectName.FunctionName不起作用。

這是頭文件的內容所屬的類別(Cellstruct.h):

typedef struct tiles 
{ 
    unsigned char red, green, blue; 
}tiles; 

const tiles BASE = {0,0,0}; 
const tiles TEST_ALIVE = {255,0,0}; 
const tiles CONWAY_ALIVE = {0,255,0}; 
const tiles CONWAY_DEAD = {0,50,0}; 

class Cellstruct 
{ 
public: 
    Cellstruct(void); 
    virtual ~Cellstruct(void); 
}; 

這是CPP文件的內容所屬的類別(Cellstruct.cpp):

#include "Cellstruct.h" 

bool equality(tiles* a, const tiles* b) 
{ 
    if (a->red == b->red && a->green == b->green && a->blue == b->blue) 
    { 
     return true; 
    } else { 
     return false; 
    } 
} 

void Automaton(tiles arra[fullwidth][fullheight], tiles arrb[fullwidth][fullheight]) 
{ 

//*this is way too long so I cut it, I think it doesn't really matter* 

} 

Cellstruct::Cellstruct(void) 
{ 
} 

Cellstruct::~Cellstruct(void) 
{ 
} 
+0

這很好。感謝您更新帖子。 – taocp

+0

你能告訴我們你怎麼稱呼功能,有什麼錯誤? – billz

+0

'ObjectName.FunctionName'這樣做意味着'FunctionName'是你的類的成員函數。如果不是,你根本無法這樣做。 – taocp

回答

1

ObjectName.FunctionName您是指您的void Automaton功能?

如果是這樣,它似乎不是您的Cellstruct類的一部分。

類應包含void Automaton

原型在你的頭,添加原型:

class Cellstruct 
{ 
public: 
    Cellstruct(void); 
    virtual ~Cellstruct(void); 

    void Automaton(tiles arra[fullwidth][fullheight], tiles arrb[fullwidth][fullheight]); //Add this 
}; 

然後在你的源文件,定義函數作爲類的一部分。

void Cellstruct::Automaton(tiles arra[fullwidth][fullheight], tiles arrb[fullwidth][fullheight]) 
{ 
    //*this is way too long so I cut it, I think it doesn't really matter* 
} 
+0

它的工作原理!最後,它工作。非常感謝你! –