首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >成员函数

成员函数
EN

Stack Overflow用户
提问于 2012-03-31 03:37:59
回答 2查看 95关注 0票数 0

当我编译时,我在"void operation“行得到一个错误,因为我还没有定义Gate_ptr。我想把函数def中的"Gate_ptr“换成"Gate*”。但是,有没有办法保持我现在的风格呢?

代码语言:javascript
运行
复制
  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;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-31 03:47:07

更喜欢这个顺序:

代码语言:javascript
运行
复制
 //forward decleration
class Gate;

//typedef based on forward dec.
typedef Gate* Gate_ptr; 

//class definition
class Gate
{
   public:
//...
};
票数 4
EN

Stack Overflow用户

发布于 2012-03-31 03:48:44

在等待声明时,执行typedef,然后定义类:

代码语言:javascript
运行
复制
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;
};
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9949422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档