現在C++ builder(cpp builder 2009を使用)でプログラミングをしています。
ネット接続で端末に接続して、TCPコネクションができたら端末の動作環境の設定値をアップロードできるようにしています。端末の動作環境のデータはenv_tという構造体にしてアップロード時にはこのenv_tの構造体一括で入れて、それをPCの現在作成しているViewerに持ってきています。
その際にある型式の端末では、そのenv_tに追加のデータ分(30byte程度)を追加したものなので、この端末と接続した場合はenv02_tという構造体に切り替えてデータをアップロードしています。
通常はm_pEnv = (env_t *)new env_t;
このように宣言してm_pEnvの構造体にデータを入れてアップロードしていますが、
特定の型式の端末に接続を検知した場合は、
delete m_pEnv;
m_pEnv = (env_t *)new env02_t;
このように変更しています。
このときに問題になっているのが、TCPでのデータがアップロード完了した際に必ずViewer内のデータ表示をアップデートするため次のファンクションを通過します。
void TfrmMain::UpdateEnv(env_t * env)
{
--------(中略)-------------------------
}
このファンクションでは引数がenv_tで固定されてしまっているので、ファンクション内部でenv02_tで追加になったデータ分の扱いができない状況です。
void TfrmMain::UpdateEnv02(env02_t * env)
{
--------(中略)-------------------------
}
このように別途、特定の型式の場合は別のファンクションを作成した方が良いのか困っています。例えば引数をenv_t、env02_tで選べるようにするようなコードの方法などありますでしょうか?
どうぞ、ご教示頂きますようお願い致します。
No.1ベストアンサー
- 回答日時:
関数のオーバーロードは使えませんか?
回答頂きありがとうございます。
Viewer側で
env_t *m_pEnv;
このように宣言していたポインターは
env_02_t *m_pEnv;
これで統一することにしました。
心配していた”env_t *m_pEnv;”これで動作している旧タイプの端末への設定データのアップロード、ダウンロードは設定が消えてしまうというような現象は起きていないことを確認しました。
とりあえずこの設定で使用してみたいと思います。
助かります。
No.2
- 回答日時:
オブジェクト指向を活用するなら
UpdateEnvは、t_env, t_env2のvirtualなメソッドとして定義して
m_pEnv->UpdateEnv();
みたいにする。
回答頂きありがとうございます。
Viewer側で
env_t *m_pEnv;
このように宣言していたポインターは
env_02_t *m_pEnv;
これで統一することにしました。
心配していた”env_t *m_pEnv;”これで動作している旧タイプの端末への設定データのアップロード、ダウンロードは設定が消えてしまうというような現象は起きていないことを確認しました。
とりあえずこの設定で使用してみたいと思います。
助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- その他(スマートフォン・携帯電話・VR) 生成AIの回答は本当ですか? 新スマホにINEデータを引継ぎには? 2 2023/08/18 06:43
- FTTH・光回線 AU光回線の速度が出ません 2 2022/07/30 16:05
- Android(アンドロイド) auのAndroid端末のSIMカードがロックされてしまいました。 6 2022/08/22 20:31
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- その他(インターネット接続・インフラ) Zoomで「インターネット接続が不安定です」という表示が出る 2 2022/04/26 14:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUが16bitでも32bitOSでコンパ...
-
プログラミングでArduinoのc++...
-
プログラマーです。このDB設計...
-
0 == False はいいけど
-
プログラム言語について c言語...
-
Python、プログラミングについ...
-
swift言語の最適化 swift最適化...
-
c++でテンプレートのコードでわ...
-
C言語 入力した値から0までの数...
-
プログラムを斜めに並べる
-
写真のプログラムは、1からnま...
-
スタックフレームの消滅
-
プログラミング 2つの整数を読...
-
大量のデータを読み込んで表示...
-
バッチファイルで以下のような...
-
Windows formアプリで データグ...
-
C言語 配列と関数の練習問題
-
double型が正常に認識されてい...
-
Bitcoin、BTCはブロックチェー...
-
C言語 バッファについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
linux上でgetchを使いたい
-
エクセルVBAでのネットワークプ...
-
親スレッドが子スレッドを監視...
-
VB.NetのWMIを用いたリモート端...
-
VBScrptについて
-
C#で作成したDLLをExcelVBAで利...
-
JavaScriptでキオスクモードを...
-
[C#]リモートアクセスのProcess...
-
docomoメール内でURLリンク
-
VB .NETで作成したソフトが、他...
-
DBGrid のライセンスの取得に関...
-
VSSにてrights.datアクセス拒否...
-
会員制動画配信サイトを作りた...
-
閲覧したスクロール位置に戻る...
-
HYBRIDW-ZERO3をPC3台と同期し...
-
VB6からVB.NET作成DLL呼び出し...
-
Android「adb shell」パスを知...
-
C++で引数の型の構造体をif文で...
-
iHTMLとCHTMLの違いを教えてく...
-
収集した緯度、経度の平均値の...
おすすめ情報