fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. /** Responseクラス開始 **/
  5. //メンバ
  6. typedef struct {
  7. int no;
  8. int (*getNo)();
  9. void (*setNo)();
  10. } Response;
  11.  
  12. // プロトタイプ宣言
  13. Response* Response_new( int no);
  14. void Response_init(Response* this,int no);
  15. void Response_setNo(Response* this,int no);
  16. int Response_getNo(Response* this);
  17.  
  18. //メソッド
  19. Response* Response_new(int no) {
  20. Response* this = malloc(sizeof(Response)); /* 自分自身の生成 */
  21.  
  22. //メソッドを構造体に入れる
  23. this->setNo=Response_setNo;
  24. this->getNo=Response_getNo;
  25.  
  26. Response_init(this,no);//コンストラクタを呼ぶ
  27.  
  28. return this;
  29. }
  30.  
  31. void Response_delete(Response* this){
  32. free(this);
  33. }
  34.  
  35. void Response_init(Response* this,int no){
  36. this->no=no;
  37. }
  38.  
  39. void Response_setNo(Response* this,int no){
  40. this->no=no;
  41. }
  42.  
  43. int Response_getNo(Response* this){
  44. return this->no;
  45. }
  46. /** Responseクラス終了**/
  47.  
  48. int main (){
  49. Response* res=Response_new(1);
  50. (*res->setNo)(res,10);
  51. printf("%d\n",(*res->getNo)(res));
  52. Response_delete(res);
  53. }
Success #stdin #stdout 0.01s 1808KB
stdin
Standard input is empty
stdout
10