※ ChatGPTを利用し、要約された質問です(原文:UNIXのC++で共通クラスを作ってみんなで使いたい。)
UNIXのC++で共通クラスを作ってみんなで使いたい
このQ&Aのポイント
UNIXのC++で共通クラスを作成し、みんなで使えるような形にする手順を教えてください。
クラスの定義部分を別ファイルにしてヘッダーファイルにするべきかどうか、共通クラスをどのような形で提供するべきかが分からない
他の人のプログラムで共通クラスを使用するための手順が分からない
UNIXのC++で共通クラスを作ってみんなで使いたい。
Linux上で稼動するあるC++のプログラムを作るのに、
みんなで使えるような、共通クラスを作りたいと思っています。
クラス自体の作り方(プログラムコード)はだいたい分かるのですが、
それをどのような形(lib?またはアーカイブ?またはdll?)で
配布すると、みんなが使いやすいものになるのかが分かりません。
手順など、どなたか教えてください。
私が何とか予想できる手順を以下に書きます。
(1)普通にクラスを作成する。(例えばaaa.cppと言う名前のファイルに)
public class AAA{
public:
void init();
void clean();
private:
int elems;
}
void AAA::init(){
elems = 0;
}
void AAA::clean(){
elems = 0;
}
※この時点でクラスの定義部分だけをヘッダーファイルとして
別ファイルにしておいた方が良いのでしょうか?
(2)このクラスをコンパイルして、みんなに提供できる何らかの形にする。
※ここがよく分かりません!!
※”.a”というアーカイブを作成する方法は知っています。
これを作れば良いのでしょうか?
(3)出来上がった共通クラスをどうにかして、他の人のプログラムで使えるようにする。
※予想としては、(1)で作ったクラス定義のヘッダーファイルを
includeする(のかな?)
それから、コンパイルする時にmakefileの中で(2)で作った
ライブラリ(?)を一緒にリンクする(のかな?)
※プログラム中では、いきなり
AAA testBuf = new AAA();
testBuf.init();
などと使えるのでしょうか?
お礼
すてき、すてき!!(^○^) 分かりやすくて素敵!! ありがとうございます。早速やってみます。 <他のプログラム(コンパイル単位)で必要なのは、クラスの宣言です。>とか <ヘッダファイル aaa.h に記述します。>とか <クラスのメソッドの定義は、aaa.cpp に記述します。 >とか、 <使う側では、ヘッダファイルをインクルードするだけで、コンパイルが通ります。 >とか、 知りたい事の全てが、これらの言葉ですんなり理解できました。 「痒いところに手が届いちゃった」という感じです。 こんな長ったらしくて要点がまとめられない質問から 知りたい事を分かってもらえたのがとっても嬉しいです。 ありがとうございます。