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の違い。。。
-
クラスのアドレスを引数として...
-
イベントにAddHandlerされてい...
-
既定のコンストラクタがない?
-
C++では構造体がメンバ関数をも...
-
このコンパイルエラーの意味に...
-
(UWSC) 「#32770」の意味わかり...
-
スプラッシュコントロールの挿...
-
IncludeではなくClassで宣言す...
-
WindowsAPIのリストビューの...
-
form1 から form2 へのデータの...
-
ボタンのオーナードローについて
-
ウィンドウの背景に画像を配置する
-
コンソールアプリでのクリップ...
-
MFCアプリのコマンドラインでパ...
-
VC6 コンパイルエラー C2248に...
-
MessageBoxを継承したい
-
C++/CLIからC++の呼び出しで例外
-
個々の関数について継承してい...
-
VB2008: 継承の場合のコンスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
DebugクラスとTraceクラスの違い
-
ボタンのオーナードローについて
-
OnInitDialog()の関数の組み込み方
-
IncludeではなくClassで宣言す...
-
関数の呼び出し元の検索
-
このコンパイルエラーの意味に...
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
DataGridViewのセルに斜線を引...
-
C#で通常のbuttonコントロール...
-
エディットコントロールのイベ...
-
CMainFrameクラスの使い方
おすすめ情報