C++事始め

2013年7月13日 Posted by PURGE

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";    
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です