C++にある "クラス分け" をC言語の方でも行えるようにしたいです。
方法をご存じの方、どうかご教授ください。
「クラス分け」とは、「コードをクラスに分ける」ことでしょうか、それとも「プログラムで物事を区分する」ことでしょうか。
…と聞かないといけないぐらいに情報が不足しています。
疑似オブジェクト指向...だと...
行えるかと言えば、行えますが、かなり無理矢理な方法になりますので、お勧めはしません。
素直にC++でいいんじゃないですか...
ます、その「クラス分け」とはどのようなイメージですか?
そして、どのような理由があってC++ではなくCで行いたいのでしょうか。
ご回答ありがとうございます。
私自身理解しきれていないため、説明が不十分となり申し訳ありません。
C言語でクラス分けしたい理由としては、私の所属している団体でロボットの自立走行プログラムを共同制作していて、その言語がCであることと、そのプログラムをモデル図としてかくためです。
プログラムは大きく分けて、センサで読み取った値から算出するものと、動作を支持するものの2種で構成していますが、ポインタや関数のみでは値のやり取りが複雑になり、モデル図にかくとき機能の関連性が見えずらくなってしまいました。
どちらも初心者に手が生えた程度の技術しかないので、C++のようなクラス分けを行えば機能のつながりの明度がわかりやすく、モデル図の書きおこしやプログラム修正が行いやすいと考えています。
継承やオーバーロードや多態性が必要無ければあるいは。オブジェクト指向に慣れた人がオブジェクト指向を使いたいというのではなく、ただただデータをまとめたいだけではありませんか?
モデル図は適当に抽象化して書けば良いのでは? それより、何があるCなのかが気になります。スレッドは使えるのか、OSは存在するのか……実装の方針がある程度は詳しくわからないと回答のつきようもないと思いますよ。 // フリースタンディング環境でwhile(1)を書くとそれがメインループという環境かもしれない
>>Zuishinさん
継承やオーバーロードなどは、センサーの値に応じた動きを指定しているため、かなり利用しています。
データをまとめたいだけかと言われると、そうと言えます。
>>hayataa2049さん
OSはTOPPERSです。スレッドは現在1つで、タスク分割が出来ていない状態です。
だったら環境が許せば素直に C++ を選ぶのがいいと思います。
>>Zuishinさん
C++はほとんど触ったことがないのですが、そちらで行ってみるようにしてみます。
または Nim という新しい言語があります。これは C 言語のライブラリが直接使えるだけでなく、C 言語のソースにコンパイルすることもできます。学習の負担はこちらの方が少ないかもしれません。
https://ja.wikipedia.org/wiki/Nim#%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
https://qiita.com/tlllune/items/609ed0e5d85e036d76b9
>>Zuishinさん
参考ありがとうございます!
ぜひ試させていただきます
回答1件
あなたの回答
tips
プレビュー