读书人

C++高手一段简单的代码求解释与使用

发布时间: 2013-09-05 16:02:06 作者: rapoo

请教各位C++高手一段简单的代码,求解释与使用


#include <list>
class CNodeList: public std::list<CNodeList>
{
public:
CNodeList(){};
int i;
};
CNodeList a;
CNodeList b;
a.push_back(b);

感觉这样写好强大,不知有没有例子 C++ 类
[解决办法]
可惜stl中没有一个容易是为了被继承而设计的。
[解决办法]
引用:
可惜stl中没有一个容易是为了被继承而设计的。


话说stl真的很强大么?工作用的真很少,全是皮毛,所以了解不深
难道是因为我还年轻?
[解决办法]
引用:
Quote: 引用:

可惜stl中没有一个容易是为了被继承而设计的。


话说stl真的很强大么?工作用的真很少,全是皮毛,所以了解不深
难道是因为我还年轻?


stl是library, 给实现者/coder用的,确实强大。如果以分析,设计或者测试为主, 自然用的不多。
[解决办法]
C语言的链表其实不都是这么写的嘛。
[解决办法]
...应该没什么人会这样写,因为stl的containers为了效率
连一个virtual没有,他们原本就不是为了被继承而设计的
如果你要继承也不是不行,但是务必要清楚的了解自己为何这么做


比较不容易让人混淆的手段是"is implemented in terms of"

class CNodeList
{
public:
CNodeList(){};
int i;
private:
std::list<int> list_;
};


或者更简单一点

struct CNode
{
int a;
//other data
};

int main()
{
std::list<CNode> nodeList;
CNode nodeA, nodeB;
nodeList.emplace_back(nodeA);
nodeList.emplace_back(nodeB);

return 0;
}


引用:
C语言的链表其实不都是这么写的嘛。

c++ is not c
[解决办法]
这个时广义表吧!!!


反正不像链表。

每个节点的数据,是一个链表。
难道要做 lisp 编译器???


[解决办法]
这是一颗树。相当于:

class CNodeList
{
CNodeList children[];
}

读书人网 >C++

热点推荐