継承の基本(復習)

cSample.h

#pragma once
#include <iostream>
 
using std::string;
 
class cSample
{
protected:
	string mName;
public:
	string mNickName;
	//インライン関数定義+メンバイニシャライザ
	cSample(string _name):mName(_name) {}
	cSample() :mName("dammy") {};
 
	//セッター・ゲッターを作ってprivateメンバ
	//を書き換える、参照するを実現
	void setMyName(string _name) { mName = _name; }
	string getMyName() { return mName; }
	void printMyName();
	void printMyNickName();
};

cSample.cpp

#include "cSample.h"
#include <iostream>
 
using std::cout;
using std::endl;
 
void cSample::printMyName()
{
	cout << mName << endl;
}
void cSample::printMyNickName()
{
	cout << mNickName << endl;
}

cInheritSample.h

#include "cSample.h"
#include <iostream>
 
using std::cout;
using std::endl;
 
void cSample::printMyName()
{
	cout << mName << endl;
}
void cSample::printMyNickName()
{
	cout << mNickName << endl;
}

cInheritSample.cpp

#include "cInheritSample.h"
#include <iostream>
 
using std::cout;
using std::endl;
 
cInheritSample::cInheritSample()
	:cSample()
{
	cout << "cSampleはデフォルトコンストラクタで初期化されました" << endl;
}
cInheritSample::cInheritSample(string _name)
	:cSample(_name)
{
	cout << "cSampleは" << _name
		<< "初期化されました" << endl;
}
 
 
 
void cInheritSample::printProfile()
{
	cout << "-+-+--+-+-"<< "Profile of " << mName
		<< "-+-+--+-+-" << endl;
	cout << "   お名前:" << mName << endl;
	cout << "ニックネーム:" << mNickName << endl;
	cout << "-+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+-" << endl;
 }

theMain.cpp

#include <iostream>
#include "cSample.h"
#include "cInheritSample.h"
 
int main()
{
	//cSample ins2;
	//cSample ins1("ysan");
	//
	//ins1.mNickName = "ytarou";
	//ins1.setMyName("yamada tarou");
	//ins1.printMyName();
	//ins1.printMyNickName();
	//
	cInheritSample ins3("山田次郎");
 
	//ins3.setMyName("山田次郎");
	ins3.mNickName = "じろちゃん";
	//ins3.printMyName();
	//ins3.printMyNickName();
 
	ins3.printProfile();
 
	return 0;
}