最近、思い始めたのですが自分でデータの型を作ることが出来るのかな?と思ったのですが本当に出来るのかが分からないのです。データの型を自分で作ることが可能か教えていただけませんか??
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参照を使っています。
Yuoさん親切に答えていただきありがとうございました。
ツイート | ![]() |