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

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

新規登録して質問してみよう
ただいま回答率
85.50%
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

C++

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

Q&A

解決済

2回答

3409閲覧

よく使う関数をまとめたい。インクルードするプログラムを効率よくまとめたい

seri

総合スコア422

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

C++

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

0グッド

0クリップ

投稿2016/10/22 04:01

C++をopenframeworksとゆう環境で使用している者です

みなさんも経験したことがあるかと思いますが、今までに書いてきた関数と同じような処理をまた書かなくてはいけなかったりする事があると思います、そのたびに同じ処理を書いていては大変です

そこで、よく使う関数をまとめてしまおうと思ったのですが、色々な処理をまとめるとなると、関数によってインクルードしなくてもいい情報もまとめるヘッダに詰め込まれてきます。

C++

1// .h 2#pragma once 3#include "ofMain.h" 4#include "A.h" 5#include "B.h" 6#include "C.h" 7class hedda{ 8void A(); 9...

void AではA.hしか使わないとした場合、B.hとC.hが不要です、これらのインクルードを無駄なく読み込むにはどのような実装をとればよろしいのでしょうか?回答お願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんにちは。

確かに質問の意図が分かりにくいですが、もしかして下記でしょうか?

matome.h

c++

1#pragma once 2#include "ofMain.h" 3#include "A.h" 4#include "B.h" 5#include "C.h" 6class heddaA{ 7 void A() { A.h内の関数を呼び出す; } 8}; 9class heddaB{ 10 void B() { B.h内の関数を呼び出す; } 11}; 12class heddaC{ 13 void C() { C.h内の関数を呼び出す; } 14};

となっていて、cpp側で#include "matome.h"しているけど、使うのがheddaAだけの場合に、B.h, C.hのインクルードをさせない方法はないか?ということでしょうか?

heddaA, heddaB, heddaCが独立なクラスならば、それぞれmatomeA.h, matomeB.h, mamtoC.hに分割し、cpp側はmamtomeA.hのみをインクルードするのが一般的です。

何を実際に使っているのか、コンパイラはコンパイルした結果でしか判断できないのでインクルードするしかありません。インクルード後ならインクルードしないと言う判断ができるということで役に立ちません。
従って、プログラマがコンパイラへ何をインクルードするべきか指示するしかないのです。

多くの場合は素直に分割してインクルードします。
その判断がプログラマにも難しいような複雑なケースではマクロを駆使して#ifdef等で部分コンパイルすることもあります。

投稿2016/10/22 06:43

Chironian

総合スコア23272

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

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

0

なにが問題なのかよくわからんのだが...
「void AではA.hしか使わない」なら A.h だけ includeすればいいんちゃうの?

あるいはヘッダでincludeせずに、Aの実装側(.cpp)でincludeすればいいんちゃうの?

投稿2016/10/22 04:53

編集2016/10/22 04:59
episteme

総合スコア16614

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

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

seri

2016/10/22 04:55

説明が下手でしたね まとめたいので、関数すべてを毎回使うわけではなく、関数を使うときは使いたい関数に必要なインクルードファイルだけ読み込むようにしたいとゆう意味です。
seri

2016/10/22 05:07

編集されました回答への返答です。 まとめたいと書いていますが、これはAやBの実装をまとめるとゆう意味になります。
episteme

2016/10/22 05:35

...わからん。関数 A を 使いたいなら #include "A.h" すればいいんだべ?
episteme

2016/10/22 05:37

「AやBの実装をまとめる」んなら: AandB.cpp に #include "A.h" #include "B.h" void A() { ... } void B() { ... } だろうし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問