c++ - 带有指向另一个对象的指针的自定义对象的 vector

标签 c++ pointers

我正在做学生项目,看起来我被困住了。我创建了一个名为 Bone 的类,其中我有一个指向另一个 Bone 对象的指针。 在另一个类中,我有 Bone 对象的 vector 。我正在从文件中读取 vector 的值并且它工作正常。我还可以检查子指针是否为 != NULL,但我无法获取名称等值。我做错了什么?

Bone.h

class Bone {
public:
    Bone();
    char name[30];
    Bone *child = NULL;
    Bone *sibiling = NULL;
};

其他类

std::vector<Bone> skeletonBones; 

for (int i=0; i<skeletonBones.size(); i++){
        Bone *bone, **boneTmp;
        bone = &skeletonBones[i];
        if (&bone->child != NULL){
            boneTmp = &bone->child;
            cout << "child - " <<  << endl;  //here is the point where I have no idea how to print the child name
        }
        else
            cout << "no child" << endl;
    }

感谢任何帮助。

最佳答案

#include <iostream>
#include <vector>

class Bone 
{
public:
    Bone();

    std::string name;

    Bone * child    { nullptr };
    Bone * sibiling { nullptr };
};

int main() 
{
    std::vector < Bone > skeleton_bones; 

    // add values to skeleton_bones

    for (std::size_t i = 0; i < skeleton_bones.size(); ++i)
    {
        Bone * bone = &skeleton_bones[i];
        if (bone->child)
        {
            Bone * child = bone->child;
            std::cout << "child is : " << child->name << std::endl;
        }
        else
            std::cout << "no child" << std::endl;
    }

    return 0;
}

关于c++ - 带有指向另一个对象的指针的自定义对象的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575289/

相关文章:

c++ - 如何在 CUDA C++ 代码中使用 'red' 和 'atom' PTX 指令?

c++ - 如何从 SDL_TEXTINPUT 获取 utf-8 输入?

c++ - Operator = 不是 DLL 中导出的 C++ __interface 的成员

C++ 链表 : Overload bracket operators []

c - 如何解决字符串比较错误中的常量指针

c - 尝试处理 Fortran 指针 - 调用 c_f_pointer

c++ - 在 OpenCV 中使用 H.264 压缩编写视频文件

pointers - Go 的指针何时取消引用自身

c++ - 素数筛并不总能得到范围内的正确素数

C - 使用 typedef 时如何从用户获取字符串?