それは今言わんでもええわな

おっぱいは赤ちゃんの為にあるんやで
管理人 とわ

笑っちゃうプログラマ

2008-06-24 | 小鳥のさえずり
どうも俺です


>スーパークラスから

>return

>を消して
>サブクラスから

>SERIAL *sp;

>を消せばいいんじゃないすか?
>あとスーパークラスのpublic関数に

>int speed();
>int rate();
>char *port();

>でも足しとけば…

サンキュー!大石さん
でも昨日ちょっと得意な先輩が
いたもんで色々お聞きしますた
そして色々ようやく理解しました


スーパークラスはこうかな

class Serial{
protect:
SERIAL *sp;
int speed;
int rate;
char *port;
public:
setting(int speed,int rate,char *port){
set_speed(speed);
set_rate(rate);
set_port(port);
};

あとは継承っと。
もしくはもうコンストラクタに書くか。



いやーさすがT大修士…
同じ学年とは思えまへん
何から何まで熱心に教えてくださった
javaとCとC++とDが出来るそうな


特にあやふやだった
・例外処理
・仮想関数
・関数ポインタ

を聞けたのは非常に助かった
天才でおま

相変わらず僕を苦しめるポインタさん

2008-06-21 | 小鳥のさえずり
どうも俺です

ようやくクラスを使えるようになったと思いきや
やはりあの御方が僕を裏切ってくださいました

それは




愛しのポインタちゃん・・・




もうさー
ほんとツンデレ
割りとなかよくなったかな?とか思ってると
またもセグメントちゃんをバイオレーションしてくれる
素敵な子です

助けて大石s


------------------------------>

とまあ書きかけで昨日悩んでたわけですが
解決しました

ソースの問題ではなくOSの問題だった
アクセスするデバイスのスペシャルファイル
/dev以下にログインしてるユーザーの権限がなかったようだ

chgrpでグループ追加してやってchmod g+wxで書き込み実行権限追加
してやると普通に動いた(write権限だけだったかも

俺の中ではセグメントバーオレーションは
各変数が保持しているメモリ領域(つまり各セグメントと呼んでいいのだろうか)
をこえてロードやライトしようとすると
「触っちゃらめええええ!壊れちゃうよおおお(メモリ的な意味で」
とコンパイラちゃんに言われるのが
まさにそれだと思ってたけど、一概にそうともいえないのかな


いや判らないっすよ


そもそも今書いてるソースが
シリアルポートからデバイスを制御する奴なんすけど
その肝心のシリアルポートのアクセス制御の関数は別の人が書いた
Cソースを使っているというていたらく


まぁそんなんはいいんです


ただ、そこのシリアルセッティングは
ほとんどのデバイスで同じ関数しか使わないので
そのセッティング専用の関数をメンバに持ち
ついでに時間情報を返す関数もいっしょにメンバに持つ
クラスを作って、各デバイスのクラスに継承してやる
のが一番いいのかなと思っているんだけど
今いちよく判らない

きっと読んでる方もわかり難いので
例として簡単に書いてみると


・serial.c(h)が
set_port();
set_speed();
set_rate();

以上の関数を定義(宣言)してますよと。
そんで各デバイスだが、まぁ判りやすく
N山さんと俺がシリアルで制御できたとする
(肛門にシリアルポートがあるとでも思えばいいよ

class Nyama{
private:
SERIAL *sp; //serial.cによる型で定義されるポインタ
void port_setting(){
sp=set_port("/dev/ttyS0");
set_speed(sp,1000);
set_rate(sp,10);
}
public:
unko(){
port_setting();
cout << "Unko^^";
}
};


class Towa{
private:
SERIAL *sp; //同上
void port_setting(){
sp=set_port("/dev/ttyS1");
set_speed(sp,1000);
set_rate(sp,10);
}
public:
jibaku(){
port_setting();
cout << "jibaku^^";
}
};


てな感じとするとしますよ。
(関係ない記述を省略したので判りにくくてスマソ
当然シリアルで制御するのだから
serial.cで定義される関数set_port~やらを二人共使う。
つまりここをまとめたい。
port_settingをまとめたいわけですよ。
だから、こんな感じのスーパークラスを作ればいいのかなと。

class Set_port{
private:
SERIAL *sp;
int speed,rate;
char *port;
public:
void setting(int speed,int rate,char *port){
sp=set_port(port);
set_speed(sp,speed);
set_rate(sp,rate);
return *sp; //何かが・・・違う
}
};

そしてサブクラスを


class Nyama :public Set_port
{
SERIAL *sp;
public:
unko();
};

class Towa :public Set_port
{
SERIAL *sp;
public:
jibaku();
};

そんでmainで・・・

int main()
{
Nyama yama;
towa ore;


・・・・あっダメだ判らなくなってきた
ポインタspをサブクラスでどう扱うべきか

スーパークラスの関数を使って*spがアドレスが入る・・から・・えーと
んじゃそのポインタをどうすれば・・・いい・・・の



だめじゃあああああああああああ
勉強不足じゃあああああああああ

あふん

俺の頭がガンマ線バーストしそうだよ

2008-06-19 | 小鳥のさえずり
どうも俺です

死んでます
生きてますが
死んでるようなもんです


渡米してからの俺


特に気負いもなかった、寧ろワクテカしてた成田
普通にいけると思っていた入国審査のゲート
送られる別室
ちらつく腰の拳銃
必死の弁明
見逃してもらえたが今年中の再入国はほぼ不可能



現地到着
叩き付けられるこの一年の現実
ただただ耐える日々
磨り減る体力と精神の絶望の淵
仄暗い底から上り始める ←今ここ






スパルタです
こんな事続けてると破滅しそうです


朝8時に出て仕事場いって
夜8時に戻って
朝4時まで家で別の仕事




今?朝5時だよチクショウ








研究室の修士の友人が一週間以上
連絡がとれないらしい
特に今週は就職面接の結果が出る予定だというのに。
ちなみに結果は合格だった。

しかし、本人は相変わらず連絡がとれない
携帯も通じないらしい
さすがにざわつきはじめて明日先生が実家に連絡するようだ



最近何か
近く自分の周りですごく
いやーな事が起こりそうな気がしてならない

あのコンテンツ再び

2008-06-09 | 小鳥のさえずり
どうも俺です

突然ですが…
また行きますあそこ
例のやったら更新が多くなるあそこです
米リカですコメリカ

今度は長いですよ3-4ヶ月
言われた時も感動も何もなく
「あっ?行くんすか?ああ…そう…」
みたいな
きっと北海道行く方が感動する


いいさ…
来年就職しても2,3年したら海外飛ばされるのは
ほぼ決定だもの…!!
(あ、4月に内定でました^p^


いやね、相変わらず英語さっぱりです
またさっぱりで行きます
た だ
数回行ってると「なんとかなるからいいや」的な
ある種の諦めみたいなものが身につきます
だめだこりゃ




相変わらず飛行機が長い
いや、まぁ長距離の移動は慣れてるし
10時間なんて山梨から愛媛へバスで帰る時の
時間に比べりゃスッポンポンなんですが…


飛行機の長距離移動でのマシなとこ(対バス


1.酒が飲める
基本前日徹夜です
そして離陸してまずビール
次もビール、そして寝る
間違いなく爆睡
気がつくと5-7時間経過、これ
ただし、飲みすぎるとトイレで吐く諸刃の剣
素人にはお勧め出来ない

2.機内食が出る
みんなまずいっていうけど
俺は好きです

3.映画が見れる
スパイダーマ3とファンタスティック4はここで見ました




と、言うわけで
お決まりですが

生きてたらまた会いましょう
シーユーー