【发布时间】:2013-09-23 13:48:04
【问题描述】:
我的问题与this one 类似,但我没有找到我需要的信息。我有我的类构造函数。
CustomTreeViewItem::CustomTreeViewItem(CustomTreeView* list)
: m_childs(), m_expanded(false), m_list(list), m_components(), m_depth(1),
m_rect(), m_root(this)
{}
我在构造函数中使用this 指针,但不从中调用任何方法,因此我不会调用未定义的行为。所以一切都很好,但是我收到了警告,现在我正在编写一些库(小框架),所以我必须编写无错误的代码。所以我把我的代码改成了这样:
CustomTreeViewItem::CustomTreeViewItem(CustomTreeView* list)
: m_childs(), m_expanded(false), m_list(list), m_components(), m_depth(1),
m_rect(), m_root(NULL)
{
m_root = this;
}
现在我没有收到任何警告,但是这样我会失去性能(非常轻微,但无论如何都是损失)。我想问是否有任何方法可以保持最高性能并防止出现此警告。
【问题讨论】:
-
您确定启用优化会导致性能下降吗?在这里 g++ 生成的程序集似乎没有什么不同。此外,如果您确切知道自己在做什么,您可以使用
#pragma禁用警告。 -
@nijansen 这将用于新项目和旧项目(非常旧),因此编译器会有所不同。
标签: c++ constructor this compiler-warnings