構造体と列挙体 (C++をもう一度)
[履歴] (2014/12/18 23:45:25)

構造体

#include <iostream>
using namespace std;

struct MyStruct {
    char charval;
    int intval;
};

void Show(MyStruct* obj) {
    cout << obj->intval << endl;
}

int main() {
    MyStruct objs[] = {
        {'a', 97},
        {'b', 98},
    };
    int size = sizeof objs / sizeof *objs;
    for (int i = 0; i < size; ++i) {
        cout << objs[i].charval << ": " << flush;
        Show(&objs[i]);
    }
    return 0;
}

列挙体

#include <iostream>
using namespace std;

enum MyEnum {
    VALUE_A,
    VALUE_B,
    VALUE_C // 最後の要素にカンマをつけるとエラーになるコンパイラが存在
};

MyEnum MyFunc(MyEnum me) {
    return me;
}

int main() {
    cout << MyFunc(VALUE_A) << endl; //=> 0
    cout << MyFunc(VALUE_B) << endl; //=> 1
    cout << MyFunc(VALUE_C) << endl; //=> 2
    return 0;
}
関連ページ
    概要 C++ を Python から利用する方法の一つに pybind11 があります。C++11 をサポートするコンパイラが必要です。サンプルコードを記載します。 pybind11 — Seamless operability between C++11 and Python Reference 簡単なサンプル