2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2018-07-18 structの中のメンバ関数 メソッド の作り方

/*
  g++ -g test.cpp -o test
*/
 
#include<stdio.h>
 
struct PERSON{		
  double a1,a2;
  double d1,d2;
  double arrival_CS(double);  // 到着時刻に関する満足度関数
  double departure_CS(double); // 出発時刻に対する満足度関数
 
};
 
double PERSON::arrival_CS(double time){
  double ret; 
 
  if (time < a1){
	ret = 1.0;
  }
  else if (time > a2){
	ret = 0.0;
  }
  else {
	ret = 1.0 / (a1 - a2) * ( time - a2);
  }
  
  return ret;
}
 
double PERSON::departure_CS(double time){
  double ret; 
 
  if (time < d1){
	ret = 1.0;
  }
  else if (time > d2){
	ret = 0.0;
  }
  else {
	ret = 1.0 / (d1 - d2) * ( time - d2);
  }
  
  return ret;
}
 
int main (){
 
  PERSON person;	// 構造体定義名の前に「struct」がいらない(C++にあってCにない規定らしい)
 
  // 以下が、マインド(心)変数
 
  person.a1 = 1;	
  person.a2 = 3;	
 
  person.d1 = 2;	
  person.d2 = 4;	
 
  double time = 2.7;
  
  double aa = person.arrival_CS(time);
  double bb = person.departure_CS(time);
 
  printf("time = %f, aa = %f, bb = %f\n", time, aa, bb);
 
  return 0;
}
syntax2html