予想している範囲外に描写しようとしたときの例外
やりたいこと
・範囲外の引数が与えられたら例外を投げる
・例外はExceptionクラスか、それを継承したものを投げる(->catchが楽)
・異常な値を取ったのはxかyか知りたい。(未実装)
・また、大きすぎるのか小さすぎるのか知りたい。(未実装)
(下二つは投げられるクラス内部の変数で制御・・・?)
きっとこんな感じ。二重定義回避とか細かいところは適当なので読みづらい。そして一般化出来ていない(=実用性ほぼなし)し、便利でもないだろう・・・
複数のものを描写するのであれば当然、どの「描写されるもの」が投げた例外かわからないといけないだろうなぁ。
多分投げるクラスは投げられるクラスを持っている必要があると思う。・・・・継承の関係はいらないような気もする。わからなくなった。
わかってくると尚のこと、先の道のりの厳しさがわかるという・・・
どうしてもわからないのはstd::range_errorのコンストラクタに引数が必須なこと。・・・どうしているのかわからないし、入れたところでそれを外部から知る方法も知らない。単なる識別か? そもそも識別っているの? 今のところはどうでもいいかな。
前回同様責任はとれません
/////////////////main.cpp////////////
#include
#include"character.h"
int main(){
character enemy;
try{
enemy.draw();
enemy.draw(100,800);
}
catch(const std::range_error error){
std::cout
#include"out_position.h"
#ifndef CHARACTER_H
#define CHARACTER_H
class character:public out_position{
private:
int x;
int y;
public: out_position out_pos;
public:
character(int pos_x = 0,int pos_y = 0);
~character();
void draw(int pos_x = 0,int pos_y=0);
};
#endif
////////////////character.cpp///////////////////////
#include
#include"character.h"
character::character(int pos_x, int pos_y):x(pos_x),y(pos_y){
}
character::~character(){}
void character::draw(int pos_x , int pos_y ){
if (pos_x
class out_position:public std::range_error{
private:
int error_x,error_y;
public:
void error_make( int error_value_x,int error_value_y){
error_x = error_value_x;
error_y= error_value_y;
}
int return_error_x(){return error_x;}
int return_error_y(){return error_y;}
out_position():error_x(0),error_y(0),std::range_error("error"){ }
virtual~out_position(){};
};