2016-07-13 7 views
0

私のアプリケーションでは、私は複数定数の変数が必要ですが、私はこれに対する解決策がありますが、私の考えではこれは正しい方法ではないと思います。const struct arrayを宣言する場所

私はこれをどのように宣言し、これについてのいくつかのコメントやフィードバックを希望します。

ファイル:

#include <QDialog> 
... 
struct s_button { 
    int buttonNum; 
    QRect geometry; 
    QString iconFileName; 
} 

namespace Ui { 
class Menu; 
} 
class Menu : public QDialog 
{ 
    Q_OBJECT 
public: 
... 
} 

ファイルをmenu.h:menu.cpp

#include "menu.h" 
#include "ui_menu.h" 
... 
const s_button menuButtons[] = 
{ 
    { 0, QRect(104,120,160,160), "VolumeUp.png" }, 
    { 1, QRect(104,300,160,160), "VolumeDown.png" }, 
    { 2, QRect(104,480,160,160), "Mute.png"  } 
}; 
... 
//Constructor 
Menu::Menu(QWidget *parent) : 
    QDialog(parent), 
    ui(new Ui::MenuDialog) 
{ 
    ui->setupUi(this); 
    .... 
} 

void Menu::drawMenuButton() 
{ 
    uint s = sizeof(menuButtons)/sizeof(menuButtons[0]); 

    for(uint i=0; i<s; i++) { 
     drawImage(menuButtons[i].iconFileName, menuButtons[i].geometry); 
    } 
    .... 
} 

は、この正しい方法ですかこれを処理するための別の方法は何ですか?あなたはこのようにそれを行うことができますadavanced

+1

「これは正しい方法ではないと私は思う」 - 私たちは心を読まない。 *なぜそう思うの? – WhozCraig

+0

私の気持ちでは、これはこの種の宣言を行う正しい方法ではないと思った。 – pjwl

+0

これはちょうどあなたが以前言ったことを繰り返す。私たちはそれを得るが、**なぜ**あなたはそれを考えるのですか?何らかの理由が*あるはずです。さもなければ、ここに投稿していないでしょうか?なぜそれが間違っていると宣言したと思いますか? – WhozCraig

答えて

0
const s_button menuButtons[] = { 
    { 0, QRect(104,120,160,160), "VolumeUp.png" }, 
    { 1, QRect(104,300,160,160), "VolumeDown.png" }, 
    { 2, QRect(104,480,160,160), "Mute.png"  } 
}; 

おかげで、それは、集計メンバーの初期化と呼ばれています。 { 0, QRect(104,120,160,160), "VolumeUp.png" }は、s_buttonのデータメンバーをメンバー順に初期化します。

+0

私はこれらのconst s_buttonをファイルにたくさん持っていますが、それは何の問題も与えません – pjwl

関連する問題