C++のスコープについて
Posted: 2010年5月30日(日) 22:58
はじめまして、こんばんは
redhat98です
MacOSX, Qt4でC++のプログラミングをやっているのですが、変数のスコープについて疑問があります。
GUIを手書きで作っているのですが、
MainWindow::MainWindow(QWidget *parent)
: QLabel(parent, Qt::Window)
{
QPixmap m_Image; //ここでメモリーリークは発生しないのか?
m_Image.load(":/test.png"); //画像の読み込み
setPixmap(m_Image); //画像をウィジェットに設定する
}
setPixmap(m_Image);はvoid setPixmap ( const QPixmap & )と宣言されています。
void (const QPixmap)と宣言されていれば、
自動的にインスタンスをコピーしてくれるので大丈夫だと思いますが
QPixmap m_Image;のと私は宣言をしているのでメモリリークが発生しないのか疑問です。
この場合は、*.hに「QPixmap m_Image;」とか「QPixmap *m_Image;」と書くのが妥当なのでしょうか?
redhat98です
MacOSX, Qt4でC++のプログラミングをやっているのですが、変数のスコープについて疑問があります。
GUIを手書きで作っているのですが、
MainWindow::MainWindow(QWidget *parent)
: QLabel(parent, Qt::Window)
{
QPixmap m_Image; //ここでメモリーリークは発生しないのか?
m_Image.load(":/test.png"); //画像の読み込み
setPixmap(m_Image); //画像をウィジェットに設定する
}
setPixmap(m_Image);はvoid setPixmap ( const QPixmap & )と宣言されています。
void (const QPixmap)と宣言されていれば、
自動的にインスタンスをコピーしてくれるので大丈夫だと思いますが
QPixmap m_Image;のと私は宣言をしているのでメモリリークが発生しないのか疑問です。
この場合は、*.hに「QPixmap m_Image;」とか「QPixmap *m_Image;」と書くのが妥当なのでしょうか?