![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> C++でJavaのStaticイニシャライザに相当するものは何ですか?
そんなものは不要です。
bool t = init();
のように、静的記憶域期間を持つオブジェクトtの初期化子で関数を呼べばよいだけです。
終了時にデストラクタを呼ぶ必要もあるのなら、
struct initializer
{
initializer() { /* 初期化処理 */ }
~initializer() { /* 終了処理 */ }
} t;
とでもしておけばよいでしょう。
これらは、Javaとは違って、必ずしもクラス単位で行う必要はありません。
もちろんクラス単位でもかまいませんし、翻訳単位とか、ライブラリ単位とか、アプリケーション単位とか、任意の単位で初期化を行うことができます。
No.2
- 回答日時:
「目的」はなんでしょう。
class Foo {
Foo() {}
};
class Bar {
static Foo foo;
};
Foo Bar::foo; // <- staticなメンバ変数
これが一番近そうですが、
「期待するような動作」が分からないので望むものかどうかは不明。
Javaとは結構違うので、Javaのつもりで書くとはまりやすそうなところです。
ご回答ありがとうございます。
あるクラス内で宣言したstatic属性の値を、初期設定時に切り替えられないかを知りたくて本件質問をしました。
(1)static値を他クラスのメソッド・他関数で変更しない。
(2)そのクラスのインスタンス生成はしない。
このような場合、Javaならstaticメソッドで対応できたと思うんですが、
C++では無理なんでしょうか?
(例)
-----------------------------------------
class A{
public:
static int testHour;
}
//testHourの初期値は、現在時としたい。
//Javaならばstaticイニシャライザで対応できるはず。
//以下ではtestHourの初期値は固定値になってしまう。
int testHour = 12;
------------------------------------------
上の例でtestHourの初期値を現在時にする方法はないものでしょうか。
どうかご指導ください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- IT・エンジニアリング c言語とjavaの需要について 3 2022/06/23 22:59
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# [至急] Project Euler:#16 Power digit sumコード、入力、出力、解説 3 2022/09/24 02:35
- C言語・C++・C# [至急]Project Euler:#13Large sum コード、入力、出力、解説 1 2022/09/24 02:30
- その他(ゲーム) マインクラフトJAVA版の導入・ローカルマルチプレイについて 1 2022/03/23 18:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
Delphi6でVB.NETで作成のDLL呼出
-
Visual C++ 6.0 でクラス表示が...
-
DebugクラスとTraceクラスの違い
-
循環参照の問題に関して。
-
関数重複の問題
-
C# 別プロジェクトのフォームを...
-
C#で通常のbuttonコントロール...
-
MFC モードレスDlgについて
-
C++で継承元のクラスの代入演算...
-
Serialize で困ってます!!
-
DataGridViewのセルに斜線を引...
-
ダイアログクラスのコントロー...
-
c#でファクトリークラスの使い方
-
ダイアログ表示時にチェックボ...
-
VC++6.0で作成したクラスをVB6....
-
CViewクラスの切り替え
-
MFCのドラッグ&ドロップについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
エディットコントロールのイベ...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
ダイアログクラスのコントロー...
-
C++ protectedにアクセス不可
-
DebugクラスとTraceクラスの違い
-
DataGridViewのセルに斜線を引...
-
【ASP.NET】 独自で作成したク...
-
このコンパイルエラーの意味に...
-
継承を重ねた場合のコストはど...
-
エディットコントロールでEnter...
-
ボタンのオーナードローについて
-
C#で通常のbuttonコントロール...
-
MFCのCListCtrlでスクロールを検出
-
【C++】相互参照
-
関数の呼び出し元の検索
おすすめ情報