如果我在另一个类中使用一个类的对象,是否可以使用指向第一类对象的指针来指向其成员?

焦感受器

这是我使用的代码:gdb一旦启动构造函数,就会显示分段错误。我可能做错了什么?

class Employee
{
public:
    string name;
    int height;
    int level;
    Employee* iboss;
    Employee* parent;
    Employee* left_child;
    Employee* right_child;
    vector<Employee*> junior;
};

class Company
{
private:
    Employee* root;
    Employee* rootAVL;

public:
    Company(void)
    {
        root->junior[0]=NULL;
        root->level=0;
        root->iboss=NULL;
        root->height=0;
        root->left_child=NULL;
        root->right_child=NULL;
        root->parent=NULL;
        rootAVL=root;
    }

    Employee* search(string A, Employee* guy,int c);
    void AddEmployee(string A,string B);
    void DeleteEmployee(string A,string B);
    void LowestCommonBoss(string A,string B);
    void PrintEmployees();
    void insertAVL(Employee* compare,Employee* guy,int c);
    void deleteAVL(Employee* guy);

    void GetName(string A)
    {
        root->name=A;
        cout<<A;
    }       
};

int main()
{
    cout<<"hello world";
    Company C;
    //so the problem seems to be that there's a segmentation fault every time i try to access        root or try to point to it's methods.
    cout<<"hello world";
    string f;
    cin>>f;
    C.GetName(f);
    C.PrintEmployees();
}

每当我尝试使用root->junior[0]=NULL或类似的东西时,它都会给我一个细分错误

可能是什么问题呢?

C64先生

在课堂上,Compnay您有:

Employee* root;

Company构造函数中,您可以执行以下操作:

root->junior[0]=NULL;

但是您没有构造任何实例Employee,因此root指针无效因此,您只是尝试使用上述root->junior...访问无效的内存

考虑创建Employee第一个。

还请注意,如果您这样做了root->junior[0]=...,则还应将Employeestd::vector junior数据成员创建为向量,其中至少包含一项(索引为0的项,您正在尝试访问)。

最后,考虑在C ++ nullptr11/14NULL代码中使用insteaad

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

指针是否需要指向已分配的类数组中的第一个对象才能使用“删除 [] ptrName”?

来自分类Dev

如果该对象的类在另一个boost模块中声明,如何使用boost将指向C ++对象的指针返回给python?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

保持指向另一个类的指针

来自分类Dev

当我有一个指向其基类的指针时,该对象是否克隆?

来自分类Dev

在另一个类中使用一个类的对象?

来自分类Dev

在另一个类中使用一个类对象PYTHON

来自分类Dev

C#委托可以指向另一个类/对象的方法吗?

来自分类Dev

在一个类中使用python方法检查另一个类对象中的变量是否相同

来自分类Dev

使用从另一个类继承的类的对象初始化成员对象

来自分类Dev

在另一个名称空间中使用同一类覆盖对象创建

来自分类Dev

在另一个名称空间中使用同一类覆盖对象创建

来自分类Dev

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

来自分类Dev

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

来自分类Dev

另一个类的成员对象

来自分类Dev

在models.py [Django]的另一个类中使用类对象

来自分类Dev

在另一个类中使用主类的对象

来自分类Dev

对象使用另一个Java类

来自分类Dev

构造函数交叉指向另一个类的对象

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在 Java 中,是否可以在另一个类中使用一个类的元素/函数?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    指针是否需要指向已分配的类数组中的第一个对象才能使用“删除 [] ptrName”?

  8. 8

    如果该对象的类在另一个boost模块中声明,如何使用boost将指向C ++对象的指针返回给python?

  9. 9

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

  10. 10

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

  11. 11

    保持指向另一个类的指针

  12. 12

    当我有一个指向其基类的指针时,该对象是否克隆?

  13. 13

    在另一个类中使用一个类的对象?

  14. 14

    在另一个类中使用一个类对象PYTHON

  15. 15

    C#委托可以指向另一个类/对象的方法吗?

  16. 16

    在一个类中使用python方法检查另一个类对象中的变量是否相同

  17. 17

    使用从另一个类继承的类的对象初始化成员对象

  18. 18

    在另一个名称空间中使用同一类覆盖对象创建

  19. 19

    在另一个名称空间中使用同一类覆盖对象创建

  20. 20

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

  21. 21

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

  22. 22

    另一个类的成员对象

  23. 23

    在models.py [Django]的另一个类中使用类对象

  24. 24

    在另一个类中使用主类的对象

  25. 25

    对象使用另一个Java类

  26. 26

    构造函数交叉指向另一个类的对象

  27. 27

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

  28. 28

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

  29. 29

    在 Java 中,是否可以在另一个类中使用一个类的元素/函数?

热门标签

归档