我正在尝试编写动态链接的复数列表。基本上:我有一个类 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/