Cocos2d-xを勉強することとなり、今更 C++ の基礎勉強。
面倒なところは、ファイル構成がJavaと異なるし、ヘッダファイルとかあるし、インクルード等がよくわからない。
そこで、最低限のプログラム。
今まで理解しきれなかったポインタの使用方法も整理できた。
わかりやすいかも。
main.cpp
[c]
#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;
}
[/c]
Animal.h
[c]
#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__) */
[/c]
Animal.cpp
[c]
#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";
}
[/c]