Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

C++でのクラス作成方法

前回、色々とやってみたもののC++での実装ができなかったので勉強しました(笑)
まずはできたソースコード一式をみてください。

<ディレクトリ構成>
Java : 「prac.java = Mainクラス, prac.java.base =Humanクラス」
C++  : 「階層なし」だけど
名前空間は「prac::clang = Mainクラス ,prac::clang = Humanクラス」

f:id:Takunoji:20170225201328p:plainすべてのファイルを同じディレクトリに配置(名前空間も指定)

f:id:Takunoji:20170225202141p:plainフィールドが一つだけ
起動結果↓

f:id:Takunoji:20170225202537p:plainHumanクラスのhello()を呼び出す
Javaとの実装の違いが結構あります。フィールドの数が違う(Stringがcharに...)
  名前空間の解決に至るまで時間がかかりました。。。

<わかったこと>
javaでの考え方に名前空間はありますが、パッケージングとディレクトリ構成がセットになっています。
なのでC++での実装はソースファイルが同じディレクトリにあるのに名前空間の設定が成立しています。
Javaの場合はeclipse上だと分かりづらいですが、パッケージと同じディレクトリ構成が出来上がっています。

なのでC++の実装もそんな風にディレクトリ構成を変えてみました。

f:id:Takunoji:20170225204305p:plainprac::clang(/prac/clang/Cmain.cpp), prac::clang::Human.cpp
因みにC++ではヘッダファイル(*.h)とソースファイル(*.cpp)に分けて作成します。
<ヘッダーファイル>

f:id:Takunoji:20170225204618p:plain
<ソースファイル>

f:id:Takunoji:20170225204706p:plain

<作成物のクラス図>

f:id:Takunoji:20170225215430p:plain

<作成するのについまずいた所>
やった事「プロジェクト作成をして何もわからないうちにパッケージ切ったら...」

symbol not found for architecture x86 64」エラーでつまづく

解決策→プロジェクトを始めから作り直した

原因と思しき...
 1.プロジェクトに「src/」フォルダがなかった
 2.名前空間の指定が不適切だった
 3.ヘッダファイルで名前空間を指定する→ソースファイルにも名前空間を指定する

Javaではヘッダーファイルがないので「なんか似た様なこと書くのだるいんだけど..」
となりがちですが、設計性に秀でた実装方法だと思います。
「どこが?」と思う人もいるかもしれませんが
次回自分なりの実装になりますが検証してみようと思います。

は、引き続きC++の勉強を続けようと思います。

takunoji.hatenablog.com

 

関連ページ

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~