KAIHATSUGIKEN GROUP
*******************************************************************************
23 コンストラクタ関数とデストラクタ関数
*******************************************
オブジェクトを生成するときに実行される特殊な関数 コンストラクタ関数
オブジェクトを破棄するときに実行される デストラクタ関数
********************************************************
#include <iostream.h>
#include <string.h>
class employee {
public:
employee(char *, long, float);
void show_employee(void);
int change_salary(float);
long get_id(void);
private:
char name[64]
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id, float salary)
{
strcpy(employee::name, name);
employee::employee_id = employee_id;
if (salary < 50000.0)
employee::salary = salary;
else
employee::salary = 0.0;
}
void employee::show_employee(void)
{
cout << "Employee: " << name << endl;
cout << "Id: " << employee_id << endl;
cout << "Salary: " << salary << endl;
}
void main(void) //ここから始まる
{
employee worker("Happy Jamsa", 101,10101.0);
//employeeオブジェクトworkerを宣言して初期値が続く
worker.show_employee(); //workerのメンバーに値を代入
}
*******************************
#include <iostream.h>
#include <string.h>
class employee { //コンストラクタ関数class名employee
public: //publicメンバー
employee(char *, long, float); //3つの型を宣言
void show_employee(void); //関数show_employeeに値を渡す
int change_salary(float);
long get_id(void);
private: //privateメンバー
char name[64] //Happy Jamsa
long employee_id; //101
float salary; //10101.0
};
employee::employee(char *name, long employee_id, float salary)//大域解決演算子
{
strcpy(employee::name, name); //employeeのnameの文字列をコピー
employee::employee_id = employee_id;
if (salary < 50000.0)
employee::salary = salary;
else
employee::salary = 0.0; //不適正な値の場合
}
void employee::show_employee(void)
{
cout << "Employee: " << name << endl;
cout << "Id: " << employee_id << endl;
cout << "Salary: " << salary << endl;
}
void main(void)
{
employee worker("Happy Jamsa", 101,10101.0);
worker.show_employee();
}
*******************************************************************
#include <iostream.h>
#include <string.h>
class employee {
public:
employee(char *, long, float);
employee(char *, long);
void show_employee(void);
int change_salary(float);
long get_id(void);
private:
char name[64]
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id,float salary)
{
strcpy(employee::name,name);
employee::employee_id = employee_id;
if(salary < 50000.0)
employee::salary = salary;
else
employee::salary = 0.0;
}
employee::employee(char *name,long employee_id)
{
strcpy(employee::name,name);
employee::employee_id = employee_id;
do {
cout << "Enter a salary for " << name <<
" less than $50,000: ";
cin >> employee::salary;
}while (salary >= 50000.0);
}
void employee::show_employee(void)
{
cout << "Employee: " << name << endl;
cout << "Id: " << employee_id <