【发布时间】:2016-07-19 19:44:51
【问题描述】:
什么时候应该在类内部的结构中定义成员,什么时候应该在嵌套类中定义成员?
例如:
class SkypeProtocol
{
public:
SkypeProtocol();
virtual ~SkypeProtocol(){}
private:
class SkypeProtocolDateTime
{
private:
UI32 uDate;
ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
};
};
或
class SkypeProtocol
{
private:
SkypeProtocol();
virtual ~SkypeProtocol(){}
typedef struct SkypeProtocolDateTime
{
private:
UI32 uDate;
ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
}SSKYPE_STRUCT;
};
【问题讨论】:
-
typedef struct { ...} structname 是古怪的 C 风格(不是 C++),请使用“struct”
-
我什至不知道可以在类中声明一个类。这是常用的吗?
-
@steffen 是的,想想迭代器
-
@OMGtechy:所以我 /did/ 知道这是可能的。 :)
标签: c++ c++11 inner-classes