c++ - 类 "list"包含包含类的结构

标签 c++ list class structure

我正在尝试编写动态链接的复数列表。基本上:我有一个类 list,其中包含一个结构 number,该结构包含类 complex。盒子里的盒子里的盒子里的盒子。我在引用复数本身时遇到问题(我只有添加节点的函数。到目前为止我的代码:

复杂.h

class complex
    {
    public:   
        float r;
        float i;
    };

列表.h

#include "complex.h"
class list

{

public: 
typedef struct number
{
    complex a;

    struct number *next;
}number;

number *number;

public:
        void add(number* number,complex b);
        list();
        ~list();

};

list.cpp(包含函数add,不起作用)

void list::add(number* number, complex b)
{
        number *newo=new number;        

         while (number->next != NULL)         
             { 
             number = number->next;
             }

          newo = malloc (sizeof(number)); 
          newo->a::r = b::r;  
          newo->a::i = b::i; 
          newo->next = NULL;                
          number->next = newo;      

感谢您的帮助;)

最佳答案

这些行

      newo->a::r = b::r;  
      newo->a::i = b::i; 

应该是

      newo->a.r = b.r;  
      newo->a.i = b.i; 

或者更简单的你可以写

      newo->a = b;  

你遇到的其他问题是

1) 您两次分配数字节点,一次使用 new,一次使用 malloc。只做一次,并使用 new

2) 该数字似乎是您的 list 类中未初始化的指针。这会让你的程序崩溃。为 list 编写构造函数,将 number 初始化为 NULL。

3) list::add 的逻辑是错误的,即使 number 是 NULL 然后你做的第一件事就是 number->next 这也会让你崩溃程序。

4) 到处都是名字(正如其他人指出的那样)。尝试为所有内容取个好名字,这将有助于您理解自己的代码。

关于c++ - 类 "list"包含包含类的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254976/

相关文章:

c# - 从 C# 代码内部访问 F# 列表

c++ - PThread 在 C++ 类中崩溃

c++ - 如何让类(class)更有凝聚力?

今天的 C++ 多线程与 C++ 11 的流动情况 - 书籍建议

c++ - 在 C++ 中将 bool (false) 转换为合法的指针吗?

c++ - 用C++在最后插入

r - 有没有办法运行包含在字符串对象(在 R 中)中的代码?

c++ - 如何找到给定范围内的整数个数甚至设置位

linux - 追加到 bash 中的最后一行

java - 如何根据重复字段对对象列表进行排序?