名前空間みたいに – プログラミング – Home

通知
すべてクリア

名前空間みたいに


ER
 ER
(@ER)
ゲスト
結合: 24年前
投稿: 12
Topic starter  

VC++6.0をつかってます。
いま名前空間みたく、記述の簡略化を試しているのですが、ローカルで決まった構造体を簡略化
できないでしょうか?
STRUCT_A ABCDEFGHIJKLMN;

ABCDEFGHIJKLMN.filename = b.txt;
を、なんとかして、
x.filename = b.txt;
と書き換えたいのです。ある範囲だけある文字をコンパイル前に置き換えるっていうマクロでも
いいのでお願いします。


引用解決済
トピックタグ
くたくた
 くたくた
(@くたくた)
ゲスト
結合: 23年前
投稿: 119
 

コンストラクタの無いクラスは、C89時代からある
STRUCT_A ABCDEFGHIJKLMN = { b.txt };
で、有るクラス(例:STRUCT_A::STRUCT_A(const char*))は
STRUCT_A ABCDEFGHIJKLMN( b.txt );
STRUCT_A ABCDEFGHIJKLMN = b.txt;
という記述方法があります。

詳細は文法書を参照して下さい。


返信引用
ER
 ER
(@ER)
ゲスト
結合: 24年前
投稿: 12
Topic starter  

回答ありがとうございます。
へぇ=、コンストラクタの記述のことは新たな発見です。すばらしいですね。
初期化の場合じゃなくて、もっといっぱい、
ABCDEFGHIJKLMN.filename = b.txt; //やら
ABCDEFGHIJKLMN.position_x = 0.0f; //やら
ABCDEFGHIJKLMN.position_y = 0.0f;
があるんですよ。これを体系的にまとめたいんですが、
{
STRUCT_A x = ABCDEFGHIJKLMN;
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;
}
みたいに。これをメモリの容量使わず記述だけで行いたいのです。お願いします。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

STRUCT_A& x = ABCDEFGHIJKLMN;
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;

マクロでよいなら、
#define x ABCDEFGHIJKLMN
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;
#undef x


返信引用
ER
 ER
(@ER)
ゲスト
結合: 24年前
投稿: 12
Topic starter  

回答ありがとうございます!
#undef なんてあったんですか^^; 知らなかった。
ありがとうございました。m(_ _)m


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました