クラス
クラスを定義ã—ã¦ã¿ã¾ã™ã€‚
- クラス
- 「class <クラスå>{ .. };ã€ã®å½¢å¼ã§æ›¸ãã¾ã™ã€‚
- 末尾ã«";"ãŒå¿…è¦ãªã®ã§æ³¨æ„。
- コンストラクタ
- クラスåã¨åŒã˜åå‰ã®public関数ãŒã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã«ãªã‚Šã¾ã™ã€‚
- Javaã¨åŒã˜ã戻り値ã¯æŒã¡ã¾ã›ã‚“。
- オーãƒãƒ¼ãƒãƒ¼ãƒ‰å¯èƒ½ã§ã™ã€‚
- デストラクタ
- クラスåã«"~"ã‚’ã¤ã‘ãŸãƒ¡ã‚½ãƒƒãƒ‰ãŒãƒ‡ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã§ã™ã€‚
- フィールド(インスタンス変数)
- classブãƒãƒƒã‚¯ã®ä¸ã«å®£è¨€ã—ã¾ã™ã€‚
- メソッド(インスタンス関数)
- クラスブãƒãƒƒã‚¯å†…ã«æ›¸ãã¾ã™ã€‚
- 実装もã‚ã‚ã›ã¦æ›¸ã方法ã¨ã€ãƒ—ãƒãƒˆã‚¿ã‚¤ãƒ—宣言ã®ã¿è¡Œã£ã¦ãŠã実装ã¯å¾Œã‹ã‚‰æ›¸ã方法ãŒã‚ã‚Šã¾ã™ã€‚
- アクセス指定
- 「public:ã€ã¨æ›¸ãã¨ã€ãれ以下ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã€ãƒ¡ã‚½ãƒƒãƒ‰ãŒå…¬é–‹ã•ã‚Œã¾ã™ã€‚
- javaã®ã‚ˆã†ã«ã€ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚„メソッドã«å€‹åˆ¥ã«è¨å®šã—ãŸã‚Šã¯ã—ã¾ã›ã‚“。
- インスタンスã®ç”Ÿæˆ
- 変数ã®å®£è¨€ã¨åŒã˜ã§ã€ã€Œ<クラスå> <変数å>;ã€ã¨ã—ã¾ã™ã€‚
- コンストラクタãŒå¼•æ•°ã‚’æŒã¤å ´åˆã€ã€Œ<クラスå> <変数å>(<引数>, ..);ã€ã¨ã—ã¾ã™ã€‚
#include <iostream> // クラス定義 class Kitten { // インスタンス変数 int age; char *name; public : // ã“れ以下ã¯public関数 // コンストラクタ / publicセクションã«æ›¸ã。 Kitten( char *name, int age ); // デストラクタ / クラスåã«"~"ã‚’ã¤ã‘る。 ~Kitten(); // メソッド char *getName(); // クラス内ã«ã¯ãƒ—ãƒãƒˆã‚¿ã‚¤ãƒ—宣言ã®ã¿æ›¸ã。 void setName( char *name ); void meow() { std::cout << name << std::endl; // 実装付ãã§æ›¸ãã“ã¨ã‚‚å¯èƒ½ã€‚ } }; // ";"ãŒå¿…è¦ã€‚ // コンストラクタã®å®Ÿè£… Kitten::Kitten( char *name, int age ) { this->age = age; // thisã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«ã¯"->"を使ã†ã€‚ this->name = name; } // デストラクタã®å®Ÿè£… Kitten::~Kitten( ) { std::cout << name << " destroyed." << std::endl; } // メソッドã®å®Ÿè£…。 char *Kitten::getName() { return name; } void Kitten::setName( char *name ) { this->name = name; } // メイン関数 int main() { Kitten kitten( "mii", 1 ); kitten.meow(); kitten.setName( "tora" ); kitten.meow(); return 0; }
実行çµæžœã§ã™ã€‚
mii tora tora destroyed.