[B]クラス 独習C++練習問題1.5.1

例題1.5を入力しなさい

/*------------------------------------------------------------------>
独習C++
1.5.1:P22
(含、練習1.5.1)

クラス
myクラスを使用し、obj1オブジェクトとobj2オブジェクトの
変数aの値を設定して、各オブジェクトの変数aの値を表示します。
-------------------------------------------------------------------->*/

#include<iostream>
using namespace std;

//-------------------------------------->
class myclass {
//myクラスの非公開メンバ
int a;

public:
int b;
void set_a( int num );
int get_a();

};

void myclass::set_a( int num ){
a = num;
}

int myclass::get_a(){
return a;
}
//-------------------------------------->
int main(){
myclass obj1, obj2;

/*
//非公開メンバ変数であることの確かめ
obj1.a = 10 ;
obj2.a = 99 ;
*/

cout << "公開メンバ関数であることの確かめ\n";//----------------------->
obj1.set_a( 10 );
obj2.set_a( 99 );


cout << obj1.get_a() << "\n";
cout << obj2.get_a() << "\n";

cout << "公開メンバ変数であることの確かめ\n";//----------------------->
obj1.b = 20 ;
obj2.b = 999 ;

cout << obj1.b << "\n";
cout << obj2.b << "\n";

getchar();

return 0;
}


/*-------------------------------------------------------------------->
独習C++
例題1.5.4:P24
含:練習1.5.1
-------------------------------------------------------------->
stackというクラスを作成し、
このクラスを、文字を保存するスタックとして使う
---------------------------------------------------------------------->*/

#include<iostream>
using namespace std;

#define SIZE 10

//-------------------------------------------------------------------->
// 文字を保存するスタッククラス
class stack{
char stck[SIZE]; //スタック領域の確保
int tos; //スタック先頭の索引
public:
void init(); //スタックの初期化
void push( char ch ); //スタックに文字をプッシュする
char pop(); //スタックから文字をポップする
};

//------------------------------------------------->
//スタックの初期化
void stack::init(){
tos = 0 ;
}

//------------------------------------------------->
//スタックに文字をプッシュする
void stack::push( char ch ){

if( tos == SIZE ){
cout << "スタックは一杯です\n";
return;
}
stck[ tos ] = ch;
tos++;
}
//------------------------------------------------->
//スタックから文字をポップする
char stack::pop(){

if( !tos ){
cout << "スタックは空です\n";
return 0; //スタックが空の場合はNullを返す
}

tos--;
return stck[ tos ];
}

//------------------------------------------------->
//main

int main(){

stack s1,s2; //2つのスタックを作成する
int i;

//スタックを初期化する
s1.init();
s2.init();

s1.push('a');
s2.push('x');

s1.push('b');
s2.push('y');

s1.push('c');
s2.push('z');

for( i = 0 ; i < 3 ; i++ ) cout << "s1をポップする:" << s1.pop() << "\n";
for( i = 0 ; i < 3 ; i++ ) cout << "s2をポップする:" << s2.pop() << "\n";

getchar();
return 0;
}