Cocos2d-xを勉強することとなり、今更 C++ の基礎勉強。
面倒なところは、ファイル構成がJavaと異なるし、ヘッダファイルとかあるし、インクルード等がよくわからない。
そこで、最低限のプログラム。
今まで理解しきれなかったポインタの使用方法も整理できた。
わかりやすいかも。
main.cpp
#include <iostream> #include <string> #include "Animal.h" using namespace std; int main(int argc, const char * argv[]) { string name = "Whoocus"; cout << "こんにちは、" << name << "さん。\n"; Animal dog("Pochi"); dog.eat(); //クラスからメソッドを呼ぶ Animal cat("Tama"); cat.eat(); //クラスからメソッドを呼ぶ //ポインタ Animal *pDog = &dog; (*pDog).eat(); //ポインタからメソッドを呼ぶ場合は . pDog->eat(); //ポインタからメソッドを呼ぶ場合は -> Animal *pCat = &cat; (*pCat).eat(); //ポインタからメソッドを呼ぶ場合は . pCat->eat(); //ポインタからメソッドを呼ぶ場合は -> //Newを使った場合 Animal *pMonkey = new Animal("Etekichi"); pMonkey->eat(); delete pMonkey; //オブジェクトはポインタでしか受けられないので下記はエラーとなる //Animal monkey = new Animal("Etekichi"); return 0; }
Animal.h
#ifndef __CmdTest__Animal__ #define __CmdTest__Animal__ #include <iostream> using namespace std; class Animal { private: string name; public: Animal(string s); void eat(); ~Animal(); }; #endif /* defined(__CmdTest__Animal__) */
Animal.cpp
#include "Animal.h" using namespace std; Animal::Animal(string s) { name = s; } void Animal::eat() { cout << name << " is eating.\n"; } Animal::~Animal() { cout << name << " is dead.\n"; }