保持指向另一个类的指针

rndm

我想保留一个指向另一个类的指针(或引用)。它可能是一个包含指向基类的指针矩阵的类,并且我希望能够在具有指向它的指针(或引用)的类的函数内使用该类的公共函数。假设它看起来像这样:

基数

#pragma once

class base
{
protected:
    int x;
    int y;
public:
    void setX (int _x)
    {
        x=_x;
    }
    void setY (int _y)
    {
        y=_y;
    }
    virtual void f ()=0;
};

派生

#pragma once
#include "base.h"
#include "container.h"

class derived : public base
{
private:
    container* c;
public:
    derived (container* c, int x, int y)
        : c(c)
    {
        setX(x);
        setY(y);
    }

    void g ()
    {
        c->doStuff();
    }

    virtual void f ()
    {
        std::cout<<"f"<<std::endl;
    }
};

容器.h

 #pragma once
 #include "base.h"
 #include "derived.h"

 class container
 {
 private:
    base*** mat;
 public:
    container ()
    {
        mat=new base**[10];
        for (int i=0; i<10; ++i)
            mat[i]=new base*[10];

        for (int i=0; i<10; ++i)
            for (int j=0; j<10; ++i)
                mat[i][j]=NULL;

        mat[5][5]=new derived(this, 1, 2);
     }

    void doStuff ()
    {
        std::cout<<"stuff"<<std::endl;
    }
 };

我不断收到这些错误

derived.h(8): error     C2143: syntax error : missing ';' before '*'
derived.h(8): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
derived.h(10): error C2061: syntax error : identifier 'container'
derived.h(10): error C2065: 'c' : undeclared identifier
derived.h(12): error C2614: 'derived' : illegal member initialization: 'c' is not a base or member
derived.h(19): error C2065: 'c' : undeclared identifier
derived.h(19): error C2227: left of '->doStuff' must point to class/struct/union/generic type
1>          type is ''unknown-type''
container.h(20): error C2661: 'derived::derived' : no overloaded function takes 3 arguments

我知道我缺少什么,我只是无法查明它是什么

juanchopanza

container.h之间有一个循环包含依赖关系derived.h幸运的是,由于derived不需要的完整定义container,因此可以避免这种情况,因此可以使用前向声明代替include:

#ifndef DERIVED_H_
#define DERIVED_H_
#include "base.h"

class container; // fwd declaration

class derived : public base
{
private:
    container* c;

//... as before

#endif

您将需要#include "container.h"在中执行derived

通常,您应该包括所有需要包括的内容,仅此而已。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指向另一个类的方法的指针

来自分类Dev

指向另一个类中的对象的指针?

来自分类Dev

Objective-C-指向一个类的指针与指向另一个类的指针是否不同?

来自分类Dev

将指向一个派生类的指针传递给另一个

来自分类Dev

当指针指向的对象被另一个类的实例删除时重新分配指针

来自分类Dev

类型的指针指向另一个的指针

来自分类Dev

C ++类持有并返回指向另一个类的指针

来自分类Dev

如何将指向基类的指针保存到另一个类的字段?

来自分类Dev

如何在C ++中将指向一个类的指针复制到另一个类中?

来自分类Dev

指向另一个类中对象的指针数组

来自分类Dev

声明并使用指向另一个类中成员函数的指针

来自分类Dev

C++ 指向另一个类中不同类的指针

来自分类Dev

Objective-C-指向一个类的指针是否不同于指向另一个类的指针?

来自分类Dev

将一个指向成员函数的指针转换为同一类的另一个

来自分类Dev

指向存储在另一个地址的地址的指针

来自分类Dev

C指向另一个变量的指针

来自分类Dev

结构中的指针指向另一个结构

来自分类Dev

两个带有成员函数的类,它们从另一个类获取指向对象的指针

来自分类Dev

设置一个指向指针的指针数组,指向另一个数组中的指针

来自分类Dev

我的类(指向另一个类的指针的容器)似乎无法访问公共构造函数

来自分类Dev

设置一个指向结构的指针等于一个函数返回的另一个结构的指针?

来自分类Dev

使用另一个类的函数指针

来自分类Dev

从另一个类返回的指针

来自分类Dev

空指针可以安全地指向另一个指针吗?

来自分类Dev

如何在C ++中使用指针指向另一个指针

来自分类Dev

取消引用指向另一个指针的空指针

来自分类Dev

添加到函数指针,以获得指向另一个函数的指针?

来自分类Dev

C ++删除指向包含另一个指针的对象的指针

来自分类Dev

在另一个指向结构的指针内访问结构的指针内的元素

Related 相关文章

  1. 1

    指向另一个类的方法的指针

  2. 2

    指向另一个类中的对象的指针?

  3. 3

    Objective-C-指向一个类的指针与指向另一个类的指针是否不同?

  4. 4

    将指向一个派生类的指针传递给另一个

  5. 5

    当指针指向的对象被另一个类的实例删除时重新分配指针

  6. 6

    类型的指针指向另一个的指针

  7. 7

    C ++类持有并返回指向另一个类的指针

  8. 8

    如何将指向基类的指针保存到另一个类的字段?

  9. 9

    如何在C ++中将指向一个类的指针复制到另一个类中?

  10. 10

    指向另一个类中对象的指针数组

  11. 11

    声明并使用指向另一个类中成员函数的指针

  12. 12

    C++ 指向另一个类中不同类的指针

  13. 13

    Objective-C-指向一个类的指针是否不同于指向另一个类的指针?

  14. 14

    将一个指向成员函数的指针转换为同一类的另一个

  15. 15

    指向存储在另一个地址的地址的指针

  16. 16

    C指向另一个变量的指针

  17. 17

    结构中的指针指向另一个结构

  18. 18

    两个带有成员函数的类,它们从另一个类获取指向对象的指针

  19. 19

    设置一个指向指针的指针数组,指向另一个数组中的指针

  20. 20

    我的类(指向另一个类的指针的容器)似乎无法访问公共构造函数

  21. 21

    设置一个指向结构的指针等于一个函数返回的另一个结构的指针?

  22. 22

    使用另一个类的函数指针

  23. 23

    从另一个类返回的指针

  24. 24

    空指针可以安全地指向另一个指针吗?

  25. 25

    如何在C ++中使用指针指向另一个指针

  26. 26

    取消引用指向另一个指针的空指针

  27. 27

    添加到函数指针,以获得指向另一个函数的指针?

  28. 28

    C ++删除指向包含另一个指针的对象的指针

  29. 29

    在另一个指向结构的指针内访问结构的指针内的元素

热门标签

归档