当我编译时,我在"void operation“行得到一个错误,因为我还没有定义Gate_ptr。我想把函数def中的"Gate_ptr“换成"Gate*”。但是,有没有办法保持我现在的风格呢?
class Gate
{
public:
Gate();
void operation(Gate_ptr &gate_tail, string type, int input1, int input2=NULL);
private:
int cnt2;
int input_val1, input_val2;
int output, gate_number;
int input_source1, input_source2;
int fanout[8];
Gate* g_next;
string type;
};
typedef Gate* Gate_ptr;
发布于 2012-03-31 03:47:07
更喜欢这个顺序:
//forward decleration
class Gate;
//typedef based on forward dec.
typedef Gate* Gate_ptr;
//class definition
class Gate
{
public:
//...
};
发布于 2012-03-31 03:48:44
在等待声明时,执行typedef,然后定义类:
class Gate;
typedef Gate* Gate_ptr;
class Gate
{
public:
Gate();
void operation(Gate_ptr &gate_tail, string type, int input1, int input2=NULL);
private:
int cnt2;
int input_val1, input_val2;
int output, gate_number;
int input_source1, input_source2;
int fanout[8];
Gate* g_next;
string type;
};
https://stackoverflow.com/questions/9949422
复制相似问题