我正在使用Qt和C++,我需要找出某些Qt类的实例使用的内存量,这通常使用sizeof来完成,但是在Qt中每个类都包含一个指向包含实际实现的另一个类的指针,在头文件中找不到此私有实现类的定义,但仅在源代码中找到.
我是QT的新手,所以可能有一种标准的方法可以做到这一点,如果你没有任何想法来解决这个问题?
我很好奇QObject究竟有多大,包括每个实例动态创建的典型私有数据.sizeof由于它们的实施方式,我无法得到那些.
编辑:请注意,我问的QObject的典型使用场景的大小,我不是问"如何获得大小"这是其他问题的关键,我问的是谁知道大概的大小,因为很明显,语言本身并没有提供报告的方法.
我有一个遵循这种模式的课程:
class Foo
{
public:
// Create a Foo whose value is absolute
Foo(int x) : other_(0), a_(x) {}
// Create a Foo whose value is relative to another Foo
Foo(Foo * other, int dx) : other_(other), a_(dx) {}
// Get the value
double x() const
{
if(other_)
return other_->x() + a_;
else
return a_;
}
private:
Foo * other_;
int a_;
};
Run Code Online (Sandbox Code Playgroud)
这些Foo对象都归Bar:
class Bar
{
public:
~Bar() { for(int i=0; i<foos_.size(); i++) delete foos_[i]; …Run Code Online (Sandbox Code Playgroud)