C++ は最近勉強し始めたばかりの初心者ですので(この質問を見てメンバアクセスの書式を知りました)
文法云々の話はできません。コンパイルしてみて通った結果でお話します。
外していたらごめんなさい。
Java の
Java
1class Test {
2 static public final int test = 1;
3}
に対応する C++ の記述はおそらく
C++
1class Test {
2public:
3 static const int test = 1;
4};
5
となると思います。
static, public, int の意味はおそらく JavaとC++でほぼ同じなのだと思います。
(C言語では static は全然別の意味なので、C++ が本当にJavaと同じなのかは
ちょっと自信が持てません)
そして、final に const が対応すると思います。
const 無しだと書き換え可能なので、どこかで書き換えられる(破壊される)危険が残ってしまいます。
あなたの作りたかったコードは Java で書くとこんな感じだったと予想します。
Java
1public class Code {
2 static final int success = 0;
3}
4
5public class Main {
6
7 public static void main(String[] args)
8 {
9 Main main = new Main();
10
11 System.out.printf( "Code.success=[%d]\n", main.sub() );
12 }
13
14 private int sub()
15 {
16 return Code.success;
17 }
18}
19
このコードを C++ で書き換えると、現在の私の力だとこんな感じになります。
( C++ だと printf を使うべきじゃないのかもしれませんがそこは私の慣れた方法を使っています。)
C++
1#include <stdio.h>
2
3class Code {
4public:
5 static const int success = 0;
6};
7
8int sub( void );
9
10int main()
11{
12 printf( "Code::success=[%d]\n", sub() );
13}
14
15int sub()
16{
17 return Code::success;
18}
ちなみに、static final にしろ、 static const にしろ、
書き換えられない値の名前は、他の変数などと区別がつくように
書き方を変えることが多いです。
Java 等でも、Code.SUCCESS といったような形式で書くことを
コーディング規約で決めている職場も多いと思います。
C++ に関してはそのあたりどうなっているのか、
初心者なのでよく知りません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/28 12:45 編集
2016/01/28 12:55
2016/01/28 13:07
2016/01/28 13:32