switch文がVBの様に書けなかったので、上のように配列に区分の数を入れて、配列の添え字を
caseの値に当てました。これなら連続の番号ですから、良いようです。
以前ソースを貼り付けていたら、次回に編集のために読み込むと、ソースが欠落することが有りました。
なのでスクリーンショットを載せていたんですが、アップロードできなくなりました。仕方ないので
前のようにソースを貼り付けます。
個別にアップロードしたら出来ましたので、もう一度スクリーンショットに戻しました。
switch文がVBの様に書けなかったので、上のように配列に区分の数を入れて、配列の添え字を
caseの値に当てました。これなら連続の番号ですから、良いようです。
以前ソースを貼り付けていたら、次回に編集のために読み込むと、ソースが欠落することが有りました。
なのでスクリーンショットを載せていたんですが、アップロードできなくなりました。仕方ないので
前のようにソースを貼り付けます。
個別にアップロードしたら出来ましたので、もう一度スクリーンショットに戻しました。
ネタ本は「独習Visual Basic 2008」です。4章の分岐とループからの例題です。Visual BasicとVisual C#似てるんですが
頭が混乱しそうです。Basicの例題をC#にどの位、置き換えられるか?答えは有るわけですので、あとはどうしてやるかだけです。
private void PrintData(string data)と言うメソッドが有ります。privateとなってますが、全体がpublic partial class Form1
と言うFormからの派生クラスに属してるので、privateでもpublicでも同じ結果だと思います。
電話は家の固定電話を使いますが、公衆電話も携帯も殆ど使いません。それ程忙しいことが
無いんです。固定電話は5,000円位かかりますが、携帯は2年間が過ぎてからは安くなって
1,000円程度。全く使わないか、家族間の連絡用です。
万一の連絡手段ですが、万一ですので、そんなことは余りないです。携帯の話しでは無かったです。
(-_-;)
確か1,000円分の無料通話がついていたと思うんですが、あっという間に無くなって、高い物に
なるので、固定電話を使います。
テレカが少しずつ使ったのが有るんですが、何時になったら無くなるんでしょうかね。疑問です。
ウィンドウアプリと言っても、C#の知識要らずで、ここまでは、ほぼVB同じです。独習Visual Basic 2008の本の内容です。
根本が同じですから、似てくるのはしょうが無いんでしょうね。
上の上の図にボタンをもう1個追加。クッリクイベントに加算を書いて、メッセージボックスに表示。
ネタは同じサイトからです。VBの場合は、何かよく分からないけど、それで良いんですね。Dim parts as String()と
配列を書いてるとこに、何でか?と思いたくなりますね。C#だとstring[] part;と書けてます。()は関数の引数みたいです。
配列らしくない。
上のスクリーンショットでは上と下がデザイナーと実行画面が逆になってます。夕べ眠たい頭でやったら、タブオーダーも表示ならない
し、アクセスキーの指定も出来なかったんですが、今朝もう一度やったら出来ましたよ。上が夕べ、下が今朝。
上の図のようにアンダーラインのついたNとかPとかが表示ならないと思ってました。しかし、一度Altキーを押さないと表示ならない
ようです。
製品を買わないと出来ないのかなあ?と疑いの気持ちが湧いてきましたが、違うようです。(-_-;)もう少し本をちゃんと読みましょう。
どうも変数名が長いのと、メソッドの名前が長くて横幅が650ピクセルでは収まりません。独習Visual Basic 2008の
学習ですが、上の最後のメソッドAreaListがRegionListになっていて、おかしいと思いますので、AreaListに変えました。
Windowsのアプリは出来るだけ、楽にスタートしたいので、VBでやってみます。参考書は独習Visual Basic 2008で
自分は2010なので合わないかもしれませんが、大体は良いだろと思い込みで始めます。漢字変換がものすごく重い。
P208からP227までは、書いてる通りにならないので、目を通しただけで終わり。P228からは普通のやり方です。
テキストボックス関係のことが書いてあります。漢字変換が少し早くなりました。
コード自体の入力は、TestButton_Clickに書いてるところだけですが、それ以外にVBが自動で発生したコードも
有るのですが、取り敢えずは関係ないと思って良いでしょう。
基本クラスから派生クラスが2個生じる例。
解答例のようにbaseのメンバーをprotectedに変えました。結果例題のようになりませんでした。なんでかなあ?
コンストラクタとデストラクタの起動順を調べるためにcoutを入れました。
結論は、コンストラクタは基底クラスを実行してから派生クラスが実行される。デストラクタは逆で派生クラスを
実行してから基底クラスが実行される。
protectedで継承すると、mainでコメントアウトしたようになるので、下のようにするとxをsetできた。
ob.setx(30);はbaseクラスのメッソドは呼べないので、derivedに書かないといけませんよね。
{ base::setx(n);}と書かないと自分自身を呼ぶ。無限ループへ突入します、多分。(-_-;)
1枚のスクリーンショットに纏めてみました。右の方がStudentクラスと派生クラスのXstudentクラス。実行画面。
左の方がstudent.cppとメインのC++Nyu2033Pb.cpp。望洋先生の著書「C++入門」からです。
チョット分からなかったのが、Shibata.Print();でXstudentのPrint()が呼ばれるかです。1行下の
Masuyan.Student::Print();の例にならえば、Shibata.Xstudent::Print();となりそうです。それでも問題ない
ように思います。
XstudentをprivateでStudentクラスから派生させてみました。上の図でコメントアウトしたところが、エラーになります。
ではどうしても、基本クラスのメンバーへアクセスできないんでしょうか?次の疑問です。
結論から言うと、派生クラスから基底クラスのメンバ変数を変更できます。但し、直接は出来ないので
基底クラスの関数を呼んで、変更すると言うことになりますね。
やはり広瀬香美の「ゲレンデがとけるほど恋したい」でしたか?あとは「私をスキーに連れって」でしたか?
映画から、4曲ほどありました。「ブリザード」、「恋人がサンタクロース」、「サーフ天国、スキー天国」、
「A HAPPY NEW YEAR」ですかね。
「冬のソナタ」あたりからも一曲。「最初から今まで」でも曲のイメージは少し薄いかも。
いつもは本のクラスなんですが、今日は寒い季節でもあるし、我が家の灯油をクラスで表したらどうなるか?を
やってみました。