質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

1525閲覧

派生クラスhaseClassからクラスMaiWindowのルーチンcall

nqf27650

総合スコア115

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/12/25 09:36

Qt5.5.1、Qtcreator3.5.1で派生クラスhaseClassから
クラスMaiWindowのなかのルーチンmainSubを
callする方法について質問します。

クラスMaiWindowの中で下,記のコードでhaseClassを実装して、
thisにMainWindowの情報が含まれている様にして、
haseClassのコンストラクターの引数parentにその情報を引き継ぎます。
haseClass *obj=new haseClass(this);

よって、派生クラスhaseClassからクラスMaiWindowの
なかのルーチンmainSubをcallできる様にこの添付プログラムを
変更出来ますか?
注)この使用は上手く行かず、ここに質問している次第です。

添付コード:
//mainwindow.h=================
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void mainSub();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

//mainwindow.cpp=================
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "haseclass.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
haseClass *obj=new haseClass(this);
obj->aaa();
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::mainSub(){
qDebug("MainWindow::mainSub()");
}

//haseclass.h=================
#ifndef HASECLASS_H
#define HASECLASS_H

#include <QMainWindow>

class haseClass : public QMainWindow
{
Q_OBJECT
public:
explicit haseClass(QWidget *parent = 0);
void aaa();

signals:

public slots:
};
#endif // HASECLASS_H

//haseclass.cpp=================
#include "haseclass.h"
#include "mainwindow.h"

haseClass::haseClass(QWidget *parent) : QMainWindow(parent)
{
//parent->mainSub();
}

void haseClass::aaa(){
qDebug("haseClass::aaa()");
//parent->mainSub();
}
//============================
以上、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2016/12/25 10:54

質問を編集しコードを<code>ボタンで整形しましょう。
guest

回答1

0

C++

1class haseClass : public QMainWindow 2{ 3 Q_OBJECT 4public: 5 explicit haseClass(QWidget *parent = 0, MainWindow *mainWin = 0); 6 void aaa(); 7 8signals: 9 public slots: 10};

と、haseClassのコンストラクタの引数にMainWindowのポインタを追加すれば

C++

1mainWin->mainSub();

で呼び出すことは出来ます。

投稿2016/12/26 09:27

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問