(1) C++의 경우,

#include <iostream>
using namespace std;

class ShareVar
{
    static int num1;
public:
    static int num2;
    void setnum(int i) { num1 = i; }
    void shownum() { cout << num1 << " " << num2 << endl; }
};

int ShareVar::num1; // define num1
int ShareVar::num2;
   
int main()
{
    ShareVar a, b;
   
    a.shownum();
    b.shownum();
   
    a.setnum(10);
    a.shownum();
    ShareVar::num2 = 10;
    b.shownum();
   
    return 0;

}

C++의 경우 cpp 파일에서 class_name::static_member_name;

과 같이 해당 정적 멤버의 저장 공간을 따로 선언해 줘야 한다는걸 기억해야 한다.

 

(2) Java의 경우,

class Car {
  String Name;
  static int CarNum = 0;
  Car(String aName) {
    Name = aName;
    CarNum++;
  }
}

class JavaExam {
  pubic static void main(String args[]) {
    Car Pride = new Car("프라이드");
    Car Matis = new Car("마티즈");
    Car Carnical = new Car("카니발");
    System.out.println("차 " + Car.CarNum + "대 구입함");
  }
}

Java의 경우, 특별히 조심해야할 사항은 없어 보인다


[for C++ ]

class base

{

    int a;

public:

    base(int x) { a = x; }

};

class derived : public base

{

    int b;

public:

    derived(int x, int y) : base(y) { b = x;}

};

[for java]

class base {

  int a;

  public base(int x) { a = x; }

}

class derived extends base {

  int b;

  public derived(int x, int y) { super(y); b = x; }

}