「Qtの基礎 - ライブラリ」の版間の差分

ナビゲーションに移動 検索に移動
234行目: 234行目:
   
   
     return a.exec();
     return a.exec();
}
</syntaxhighlight>
<br><br>
== ライブラリとバイナリ互換性 ===
==== バイナリ互換性とは ====
大規模なソフトウェアの場合、複数の機能を再利用したり、プラグイン等を開発するためにライブラリを使用することが多い。<br>
静的ライブラリまたは動的ライブラリをリンクしてソフトウェアから機能を利用する。<br>
<br>
しかし、ライブラリを開発する上で、機能の追加または削除した場合、バイナリ互換性の問題が発生することがある。<br>
<br>
バイナリ互換性とは、ライブラリとそれをリンクしたソフトウェアの間に互換性があるかということである。<br>
例えば、以下のようなライブラリを開発したとする。<br>
<syntaxhighlight lang="c++">
// Plugin.h
class Plugin
{
public:
    Plugin(){}
    ~Plugin(){}
private:
    int version;
};
</syntaxhighlight>
<br>
以下に、上記のライブラリをリンクするソフトウェアを記述する。<br>
<syntaxhighlight lang="c++">
// main.h
#include <iostream>
// Pluginクラスを継承
class MyPlugin : public Plugin
{
public:
    MyPlugin() : version(0)
    {
    }
    ~MyPlugin()
    {
    }
    void printVersion()
    {
      std::cout << "MyPlugin version : " << version << std::endl;
    }
private:
    int myVersion;
};
</syntaxhighlight>
<br>
<syntaxhighlight lang="c++">
// main.cpp
#include <iostream>
int main()
{
    MyPlugin plugin;
    plugin.printVersion();
    return 0;
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>

案内メニュー