データ型を自分で作るには?

解決


こい  2002-11-13 18:19:31  No: 50612  IP: [192.*.*.*]

最近、思い始めたのですが自分でデータの型を作ることが出来るのかな?と思ったのですが本当に出来るのかが分からないのです。データの型を自分で作ることが可能か教えていただけませんか??

編集 削除
YuO  2002-11-13 19:25:17  No: 50613  IP: [192.*.*.*]

structとかclassとかで可能です。
基本的に,C++のclassは組み込み型とほとんど同じように扱える様にプログラムすることができます。

例えば,C++の組み込み型intは,次のようなクラスにキャスト関係の演算子が加わったものだと考えることができます。
class int {
public:
    int (void);
    int (constant-value); /* constant-valueというのは定数値のこと。 */

    int (const int &); // Bitwise Copy
    ~int (void);       // no-operation

    // Postfix Operators (5.2)
    const int operator++ (int); // Postfix Increment (5.2.6)
    const int operator-- (int); // Postfix Decrement (5.2.6)

    // Unary Operators (5.3)
    int & operator++ (void);    // Prefix Increment (5.3.2)
    int & operator-- (void);    // Prefix Decrement (5.3.2)
    const int operator+ (void) const;
    const int operator- (void) const;
    int * operator& (void);
    const int * operator& (void) const;
    bool operator! (void) const;
    const int operator~ (void) const;

    // Shift Operators (5.8)
    const int operator<< (const int &) const;
    const int operator>> (const int &) const;

    // Assignment Operators (5.17)
    int & operator= (const int &);
    int & operator*= (const int &);
    int & operator/= (const int &);
    int & operator%= (const int &);
    int & operator+= (const int &);
    int & operator-= (const int &);
    int & operator>>= (const int &);
    int & operator<<= (const int &);
    int & operator&= (const int &);
    int & operator^= (const int &);
    int & operator|= (const int &);
};

// Multiplicative Operators (5.6)
const int operator* (const int &, const int &);
const int operator/ (const int &, const int &);
const int operator% (const int &, const int &);

// Additive Operators (5.7)
const int operator+ (const int &, const int &);
const int operator- (const int &, const int &);

// Relational Operators (5.9)
bool operator< (const int &, const int &);
bool operator> (const int &, const int &);
bool operator<= (const int &, const int &);
bool operator>= (const int &, const int &);

// Equality Operators (5.10)
bool operator== (const int &, const int &);
bool operator!= (const int &, const int &);

// Bitwise And Operator (5.11)
const int operator& (const int &, const int &);

// Bitwise exclusive Or Operator (5.12)
const int operator^ (const int &, const int &);

// Bitwise inclusive Or Operator (5.13)
const int operator| (const int &, const int &);

#intだから普通は参照でなく値で受け渡しですが,
#クラスに似せていることを意識してconst参照を使っています。

編集 削除
こい  2002-11-14 12:58:45  No: 50614  IP: [192.*.*.*]

Yuoさん親切に答えていただきありがとうございました。

編集 削除