你最喜欢的C++编码风格是什么?我问的是样式或编码排版,例如你在哪里放大括号,在关键字后面有空格,缩进的大小等等.这与最佳实践或要求相反,例如总是删除数组delete[].
以下是我最喜欢的一个示例:在C++类初始值设定项中,我们将分隔符放在行的前面而不是后面.这样可以更容易地保持最新状态.这也意味着版本之间的源代码控制差异更清晰.
TextFileProcessor::
TextFileProcessor( class ConstStringFinder& theConstStringFinder )
: TextFileProcessor_Base( theConstStringFinder )
, m_ThreadHandle ( NULL )
, m_startNLSearch ( 0 )
, m_endNLSearch ( 0 )
, m_LineEndGetIdx ( 0 )
, m_LineEndPutIdx ( 0 )
, m_LineEnds ( new const void*[ sc_LineEndSize ] )
{
;
}
Run Code Online (Sandbox Code Playgroud) 我在一篇文章中发现"static_cast用于非多态类型转换,而dynamic_cast用于多态类型转换".我知道int和double不是多态类型.
但是,我还发现static_cast可以在基类和派生类之间使用.这里的多态类型是什么意思?有人说多态类型意味着具有虚函数的基类.是对的吗?这是唯一的情况吗?还有什么?任何人都可以为我详细说明这个吗?
假设我有一个A, B, C, ...所有继承的类列表Base.
我从类用户获取类名作为字符串,我想实例化正确的类并返回指向Base.你会如何实现这个?
我想过使用一个以类名作为键的哈希表,以及一个函数指针,该函数指向实例化正确类并返回一个的函数Base *.
但是,我想我可以在这里使用工厂模式并使其更容易,但我不能很好地记住它,所以我虽然我会寻求建议.
我有一个指向基类foo的指针向量,它有几个子类,我想要做的是基于它是哪个子类,创建一个同一个实例的新类.
我之前通过一个巨大的for循环解决了它,它使用typeid找出它是什么类但是没有办法以更一般的方式解决它?
基本上,我正在寻找这样的东西:
std::vector<foo*> a;
std::vector<foo*> b;
//Store a couple of classes in a and b
b[0] = new typeid(a[0]).name();
Run Code Online (Sandbox Code Playgroud)