我知道C++(two?)中的结构和类之间几乎没有区别。尽管如此,我已经被指示使用结构来定义简单的小东西,比如可能不需要成员函数的节点(尽管我可以在技术上包括包含成员函数)。比如我可能会定义一个节点作为链表类的私有成员如下:我可以在没有定义构造函数的情况下在堆上创建新的结构体吗?
class LinkedList {
struct Node {
MyObject *data;
Node *next;
};
Node *list;
};
在这种情况下,然而,是有可能创造这个结构在堆上的一个新的实例,否则我就需要定义一个构造函数?有没有办法在没有新操作员的情况下在堆上创建事物?或者,更好的是:我是否没有必要紧紧地坚持这样一个概念,即不应该为结构定义成员函数?我应该继续并定义一个吗?或者如果我这样做,是否会像承认Node真的是内部类而不是内部结构?我真的应该为这些事情担心吗?哪个更具可读性?
谢谢!
你应该提到malloc不会运行构造函数,如果有的话。 – 2010-12-13 04:23:32
也免费调用析构函数:) – Arunmu 2010-12-13 04:51:01
并且'calloc'也会做一个'memset(0)' – ruslik 2010-12-13 05:37:45