2016-05-21 4 views
-1

このエラーの解決方法は見つかりませんでした: 'Controller &'タイプの非const参照の無効な初期化タイプの右辺値 '<括弧で囲まれた初期化子リスト>''<brace-enclosed initializer list>'のタイプの非const参照の初期化が無効です

から、この機能には:

QTPlay::QTPlay(Controller &c,QWidget *parent) : c{ c }, QWidget{ parent } 
{ 
    this->initGUI(); 
    this->currentMovie = this->c.repo.movies; 
    this->populaterepo(); 
} 

これはオブジェクトです:

class QTPlay : public QWidget 
{ 
private: 
    Q_OBJECT 
public: 

QTPlay(Controller &c, QWidget *parent =0); 
private: 
Controller &c; 
std::vector<Movie> currentMovie; 

QListWidget* repo; 
QLineEdit* title; 
QLineEdit* genre; 
QLineEdit* year; 
QLineEdit* likes; 
QLineEdit* trailer; 
QPushButton* addButton; 
QPushButton* deleteButton; 
QPushButton* filterButton; 
QPushButton* moveOneMovieButton; 
QPushButton* playmovieButton; 
QPushButton* nextmovieButton; 

QListWidget* playList; 

void initGUI(); 
void populaterepo(); 
void populatePlaylist(); 
int getRepoListSelectedIndex(); 

int getPlayListSelectedIndex(); 

void connectSignalsAndSlots(); 

private slots: 
void listItemChanged(); 

void addMovie(); 
void deleteMovie(); 
void filterRepoMovies(); 
void moveMovieToPlaylist(); 
void playmovie(); 
void nextmovie(); 
}; 

私はここでそれを呼び出す:

Controller c(repo, p); 
QTPlay w{c}; 

それが関連している場合、私はまた、QtののLinuxバージョンで働いています。

このタイプはint型ではなくカスタム作成のコントローラであり、フレームワークQtを使用するため、この質問は異なります。

+1

インターネットに接続しましたか – LogicStuff

+1

[エラー:タイプ 'int'のタイプの 'const'の非const参照の無効な初期化がタイプ 'int'のrvalueから可能です]](http://stackoverflow.com/questions/8293426/error-invalid- rvalからの非const型参照の初期化) – LogicStuff

答えて

-1

変更コンストラクタやメンバ変数の名前の引数の名前、彼らはおそらくそれらのいずれかに_を追加することによって、(同じではありませんので。それは何をやっていることは合法であるかということがあり、それそうではないかもしれませんが、明らかにコンパイラを混乱させています(コードレビューで見た場合、標準をチェックして合法であるかどうかを確認する必要があります)。

+0

誰でも投票を説明する準備ができましたか? –

+0

私は投票しませんでした。しかし、フィールドと同じ名前のコンストラクタパラメータを持つことは完全に合法です(そして、いくつかのサークルでは一般的な方法です)。コンパイラが混乱している場合、コンパイラは壊れています。名前のルックアップのルールはメンバーとその初期設定者によって異なり、いずれの場合も正しいことを行います。 –

+0

私はそれが動作しなかったそれを試してみました。私はまだ投票することはできませんので、IDKはdownvoteについて。 – Paul

関連する問題