所以,我碰到,我不太明白,它沿着线去一个有趣的方法来签名理解是用作参数的“class”关键字,为什么它在那里?是否有必要指定或纯粹肤浅?C++类作为参数的方法,而不是模板
回答
这是该类的前向声明。这是实际上是相同的
class SomeClassName;
void Initialize(std::vector<std::string> & param1, SomeClassName * p);
有其正向的声明是有用的许多情况;在this answer to another question中有一个你可以做和不可以做的前向声明的事情清单)。
它是否作为前向声明呢? – ra170 2010-05-14 18:50:35
@ ra170:是的,它的确如此。 – 2010-05-14 18:53:48
“,但你需要使用指针或引用类的实例” - >如果你只是有一个非定义函数声明就像在这种情况下,你可以很好地处理值参数。 – 2010-05-14 23:30:44
最肤浅。在C中,当你定义一个结构时:
struct x {
int member;
char member2;
};
要使用它,你必须使用struct x whatever
。如果你想通过自己使用x
作为一个名称(不带它前面struct
),你必须使用一个typedef
:
typedef struct x {
int member;
char member2;
} x;
在C++中,然而,第一(不typedef
)具有大致相同的效果第二个(都定义为x
,因此您可以单独使用它,而不是前面的struct
)。在C++中,class
基本上与struct
相同,只是它默认为private
而不是public
(对于成员和继承)。
唯一有差别的地方是在函数声明的位置上没有定义范围内的class
。
- 1. 作为基类的C++模板参数
- 2. 为什么void *作为模板参数而不是模板参数?
- 3. 将类作为模板参数,并将类构造函数的参数作为方法参数的方法
- 4. 作为模板参数的C++模板
- 5. 作为模板参数的模板类
- 6. C++同级模板类作为模板模板参数
- 7. 将模板类作为参数传递给类方法并使用模板类作为矢量模板类型
- 8. C#类类型作为方法参数
- 9. 将方法的签名作为模板参数传递给类
- 10. 传递模板类作为方法的参数
- 11. C++ 11/14/17:模板类指针作为模板参数
- 12. C++方法名称作为模板参数
- 13. 使用模板类作为方法参数
- 14. 使用模板模板类参数作为参数
- 15. 模板类作为模板参数默认参数
- 16. 最好的方法来创建一个模板方法(对于单例类),接收模板类作为参数
- 17. C++模板显式实现,模板参数是类模板
- 18. 使用模板类的嵌套类型作为模板参数
- 19. 以模板类为参数的C++模板函数
- 20. 如何使用类的模板参数作为类成员的模板参数?
- 21. C++模板功能 - >传递一个模板类作为模板参数
- 22. 推导返回类型为模板参数方法的类型
- 23. C++ PIMPL方法:根据模板参数
- 24. 类方法模板参数列表
- 25. 函数模板作为类模板的参数
- 26. 如何使用模板类中的模板类作为模板参数的模板参数?
- 27. 模板方法和模板类C++
- 28. 内部类型作为模板参数
- 29. 使用模板类作为参数
- 30. C++模板模板参数语法
我在一类成员认为这是很好宣言和我疯了试图找出它的含义。 'Foo类{ private: class Bar * pointerToBar; }' – Vicro 2015-02-26 09:20:45