/*------------------------------------------------------------------>
独習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;
}