タグ

barasixiのブックマーク (241)

  • ヘッダファイルで変数を宣言したり関数を定義したりするな

    注: ここで注意しているのは、関数体の定義のことであって、 プロトタイプ宣言のことではない。 レポートを見ていると、 ヘッダファイル中で変数を宣言したり関数を定義したりしているものがある。 とくに、ヘッダファイルで変数を宣言し、2 つ以上の C プログラムで #include することで変数を共有しようとするプログラムがあるが、 これは文法上正しくない。 #include プリプロセッサ命令は、コンパイル前に #include 対象のファイルをその位置に埋め込むことを指示する。たとえば /* foo.h */ int add1(int n) { return n + 1; } のようなヘッダファイルを /* main.c */ #include "foo.h" int main(void) { if (bar() == 1) { printf("%d", add1(5)); } retu

  • ヘッダーファイルは慎重に扱わないと危険です

    ホーム < ゲームつくろー! < C++踏み込み編 < ヘッダーファイルは慎重に扱わないと危険です その7 ヘッダーファイルは慎重に扱わないと危険です ヘッダーファイルは関数やクラスのプロトタイプを宣言するファイルです。今更なんだと思われるかもしれません。しかし、ヘッダーファイルは慎重に扱わないと取り返しのつかないバグを生んでしまいます。それこそシステムが崩壊するほどのバグになることも時にはあります。 ヘッダーファイル軽んずべからず。この章はそういったヘッダーファイルにまつわるお話です。 ① ヘッダーファイルって何なのか? 冒頭でも述べましたように、ヘッダーファイルは関数やクラスのプロトタイプ宣言をするファイルです。プロトタイプ宣言とは、「変数の名前、型」そして「関数名、引数の型、戻り値の型」のみを記述する事を指します。クラスの場合、クラス名と共にクラスが持つメンバ変数やメンバ関数がプロト

  • サルでもわかる 逆引きデザインパターン 第3章 逆引きカタログ J2EE編 Template Method(テンプレートメソッド)

    このサンプルでは管理者のみが利用できる「管理者メニュー」と、一般ユーザが見れる「一般ユーザメニュー」の2つのメニューがあります。 それぞれのメニュー表示用のサーブレットでは、ユーザの権限チェックを行い、画面を表示するかどうかを決定しています。 権限チェックで画面が利用できないのであれば、エラー画面を表示します。 ◎AbstractServlet(リスト1) AbstractServletは全ての業務サーブレットのスーパークラスとなるサーブレットです。 doPost()、doGet()メソッドからexecute()メソッドを呼び出すことで、ブラウザからのリクエストをexecuteメソッドで処理しています。 execute()メソッドでは以下の処理を行っています。 ①doSetup()メソッド(前処理)の呼び出し ②doAuth()メソッド(権限チェック)の呼び出し ③doExecute()メ

  • C++ class

    例:クラス #include <iostream.h> #include <string.h> class hito //クラス宣言 { private: char name[40]; int age; public: void setname(char* ss); //名前を設定するメンバ関数の宣言 void setage(int tosi); //年齢を設定するメンバ関数の宣言 void disp(); //内容を出力するメンバ関数の宣言 }; void hito::setname(char* ss) //メンバ関数(setname)の定義 { strcpy(name,ss); } void hito::setage(int tosi) //メンバ関数(setage)の定義 { if(tosi<0) age=0; ekse age=tosi } void hito::disp() //

  • ソースファイルとヘッダーファイル

    VCで初めてC言語に触れた人にとって、「ソースファイルとヘッダーファイル」という概念はかなーり難しいものだと思います。特に「インクルードしてるのになんで”定義されていない識別子です。”なんて言われるのーっ!?」と苦しんでいる方もいるのではないでしょうか。 そこで、今回はこの2ファイルの関係について見ていこうと思います。 まず「ソースファイル」について見てみましょう。 コンパイラはソースファイルをコンパイルします。コンパイルを行うプログラムCL.exeは、引数としてソースファイルひとつを取り、そのファイルをコンパイルします。つまり「ヘッダーファイル」はコンパイルしません。これが重要。ただし、「インライン関数」と「テンプレート関数」については別。これはあとで解説します。 また、ソースファイルはひとつずつコンパイルされます。複数のソースファイルがくっつけられてまとめてコンパイルされることはなく、

  • drawBitmapの自動拡大(?)について

    メールアドレスがこのグループでは匿名化されているか、メンバーのメールアドレスを表示する権限がないため、元のメッセージを表示できません こんにちは。Android1.6のエミュレーター、解像度をWVGA(854x480)で、 以下のプログラムを実行すると240x240のイメージが1.5倍(?)で 表示されてしまい困っています。 (バックバッファに全て描画し、最後に画面へ描画したいです) 原因や解決策などありましたら教えてください。。 よろしくお願いいたします。 package test.graphics; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import androi

  • Android端末の画面の向きを固定する2つの方法

    iOS、AndroidIT技術等のまとめブログ。小さくても大きな効果を発揮する知的ツールの調査、開発結果を報告しています。 Android端末を傾けても画面を一定の向きで固定しておく方法を調べました。その方法は2つあります。ひとつはAndroidManifest.xmlで静的に向きを設定する方法、もうひとつはActivityクラスのsetRequestOrientationメソッドで動的に向きを設定する方法です。 AndroidManifest.xmlで静的に設定する方法 activityタグのandroid:screenOrientationに向きを表す属性値を設定することで、端末の向きを固定できます。 設定例 <activity android:name=".ScreenTest" android:label="@string/app_name" android:screenOrie

    barasixi
    barasixi 2012/05/06
    端末画面の向き固定方法。 動的設定が書かれてるサイトが少ない……
  • in the looop | Looops communications

    ループス・コミュニケーションズは、 企業のSNS活用戦略の立案・運用改善、啓発教育などのコンサルティングサービスや、リーダーシップやイノベーションをテーマとした企業研修を提供しています。

  • 「Facebookは儲かるそうなのでFacebookの始め方を教えて下さい」への返答

    最近旭川で、何があったのかわからないけど「facebook儲かるんでしょねぇねぇなんなのどうすればいいの」と聞かれることが増えてきた。そんなわけで、とりあえず皆様には 『ネタ帳 Facebookは儲かる』 でGoogle検索してくださいと伝えて、いったんその話しをブロックさせて頂きたい一心で、この記事を作ることに決めました。 そもそも、そんな同じ話を毎回毎回説明するもの大変でして・・・。 人が集まるところにいくツール 儲かる、儲けるツールではないんですよFacebookって。 だから儲かる、儲けるでFacebookに参入しようとすると、死ぬほど不自然なことが起こるんですよね。 ひとまずFacebookについて軽くおさらいをしますと、Facebookを一つの学校に見立てて、とりあえずそこに入学するわけです。勿論友達もできます。既に入学しているお友達に関しては、スムーズに検索できます。実名が基

    「Facebookは儲かるそうなのでFacebookの始め方を教えて下さい」への返答
    barasixi
    barasixi 2012/04/28
    見立て方が上手だなぁ……
  • Ken Kobayashi CPP10

    C++によるプログラミング入門10 乱数 こんにちは。前回のプログラムはまだまだ未完成ですが、それでもかなり長かったですね。しばらくあんなのはありません。あれを完成させるため、今日から少し地道な勉強をします。 なお、これからの内容の多くはCと共通の内容です。C経験者も退屈しないようにクラスをつくる例も挙げていこうとは思うのですが、、、、。まあ、とばし読みしてください。 今日は、入門9で出てきた「新しいこと」の説明をします。 まず、でたらめな数、つまり乱数の話です。「乱数を発生させる」ということは「さいころを振る」というようなことです。ただ、さいころの場合は1から6の数しかでませんが、プログラムでは自由に選べます。 まず例を見ましょう。次のようなプログラムをコンパイルし実行してみてください。//ransu.cpp #include <iostream> #include <cstdlib> 

  • きのふよりけふ、けふよりあした 【Android】Android で画像の合成と画像の出力

    Android 画像合成 画像の合成(になるのかな…)は簡単です。 CanvasオブジェクトにBitmapインスタンスの画像をdrawしまくるだけです。 座標指定もできます。 1.Bitmapインスタンスを作成 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original); // 合成元 Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.d1); // 合成素材1 Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.d2); // 合成素材2 2.Canvasインスタンスを作成 int width =

  • 1.20 論理シフトと算術シフト

    CASLで扱うシフトには論理シフトと算術シフトがあります。 論理シフトは符号ビット(先頭ビット,第15ビット,最も左のビット)を含めてシフトするもので、空いたビット位置すべてに0が入ります。 対する算術シフトは符号ビットを除いてシフトするもので、空いたビット位置すべてに左シフトの時は0、右シフトの時は符号ビットと同じものが入ります。 以下にCASLにおけるシフトの様子を示します。 ★シフト演算も「演算シミュレータ」で確かめることができます。 論理シフト 【例】1ビット左論理シフト (1010 0011 0000 1111)2・・・シフト前 ←シフト方向 (0100 0110 0001 1110)2・・・シフト後 ↑ 空いたビット位置 【例】1ビット右論理シフト (1010 0011 0000 1111)2・・・シフト前 シフト方向→ (0101 0001 1000 0111)2・・・シフト

  • 닷홈 | 페이지를 표시할 수 없습니다.

    페이지를 표시할 수 없습니다. Error 404 Not Found. 요청하신 파일을 찾을 수 없습니다. 입력하신 페이지의 주소를 확인해주시기 바랍니다. 닷홈으로 이동

  • 10.7 「したい」と「する」を分ける! : Javaのオブジェクト指向入門

    // AGroupClassRunner.java /** * インタフェース。 * Bグループのクラスで作るはずの機能を呼び出すために * Aグループ側で用意します。 */ interface BGroupInterface { /** * 抽象メソッド。 * 計算してもらいます。 */ int calc( int lh, int rh ); } /** * Aグループのクラス。 */ class AGroupClass { /** * Bグループの処理を行うインタフェース。 */ BGroupInterface bGroup; /** * 何か処理をするメソッド。 */ void doLogic() { // 色々処理をしてー。 // Bグループの機能を呼び出す箇所。 int i = bGroup.calc( 100, 200 ); System.out.println( i ); /

  • interfaceと抽象クラスの本質的な違いを勘違いしていた。 - 絶品ゆどうふのタレ

    ずっと勘違いをしていた。 でもこの記事読んで、すごいすっきりわかった。 若干古い記事だけど、こういう良記事がWeb上に掲載されて永く残るのはいいなぁ。 結論から言えば、両者の使い分けは次のようになります。まず、インタフェースは、主に継承階層の異なる複数の型をオブジェクトに持たせるために使います。一方の抽象クラスは、主に同一の継承階層に属するクラスに共通する処理を持ったスーパークラス(基底クラス)として定義します。 (中略) 「型の継承」、「実装の継承」 上述したように、言語仕様の観点から共通点と相違点を挙げると、両者の使い分けは、例えば「クラスでは多重継承ができないので、多重継承をするときには抽象クラスではなく、インタフェースを使う」とか、「インタフェースでは実装を定義できないので、実装の継承が必要であれば抽象クラスを使う」といった認識になりがちです。 しかし、これでは末転倒です。そうで

    interfaceと抽象クラスの本質的な違いを勘違いしていた。 - 絶品ゆどうふのタレ
  • 株式会社日本一ソフトウェア Official Web Site For Company.

    プレイステーション4などのゲームソフト、携帯電話コンテンツを開発・発売している日一ソフトウェアのウェブサイトです。

    株式会社日本一ソフトウェア Official Web Site For Company.
  • Site Cooler NZ | Points to Note When Shopping for a Washing Machine

    Points to Note When Shopping for a Washing Machine There are different washing machines brands in New Zealand. When shopping, therefore, you need to ensure that first, you get a quality machine; a machine that will last through many years without breaking down. You check product warranties and reviews when shopping to ensure a machine is a good quality. The material of the drum can be enamel, plas

  • Java - ¥¹¥ì¥Ã¥É

    java.lang.Thread¤Ï¤¿¤À¤Î¥ª¥Ö¥¸¥§¥¯¥È¡£¼Â¹Ô¥¹¥ì¥Ã¥É¤Ï¡¢Æȼ«¤Î¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤òÈ÷¤¨¤¿ÆÈΩ¤·¤¿¥×¥í¥»¥¹¡£Java¤Ç¤Ï¡¢°ì¤Ä¤Î¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤Ë°ì¤Ä¤Î¥¹¥ì¥Ã¥É¤¬Â¸ºß¤¹¤ë¡£Î㤨¤Ð¡¢main()¥á¥½¥Ã¥É¤Ï¡Ö¥á¥¤¥ó¥¹¥ì¥Ã¥É¡×¤È¸Æ¤Ð¤ì¤ë°ì¤Ä¤Î¥¹¥ì¥Ã¥ÉÆâ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£ ¿·¤·¤¤¥¹¥ì¥Ã¥É¤òºîÀ®¤¹¤ë¤È¡¢¤¹¤°¤Ë¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤¬³ÎÊݤµ¤ì¡¢¤½¤Î¿·¤·¤¤¥¹¥ì¥Ã¥É¤«¤é¼Â¹Ô¤µ¤ì¤¿¥á¥½¥Ã¥É¤Ï¡¢¤½¤ÎÆȼ«¤Î¥³¡¼¥ë¥¹¥¿¥Ã¥¯Æâ¤ÇÆ°ºî¤¹¤ë¡£ ¥¹¥ì¥Ã¥É¤Ë´Ø¤·¤Æ

  • スレッドの停止・再開

    スレッドの停止・再開 バウンドする球をボタンで一時停止/再開できます。「完全停止」は、このページを更新しない限り動きません。 スレッドの一時停止に利用するwait()メソッド java.lang.Objectクラスのメソッド notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させる。 スレッドの再開に利用するnotify()メソッド java.lang.Objectクラスのメソッド 待機中のスレッドを 1 つ再開する。 ★(特記) 完全停止 ・・・フラグ変数を準備し、この変数がtrueの間、while文を実行しスレッドのループを繰り返す。完全停止するにはこの変数にfalseをセットすればよい。 wait()、notify()の呼び出しはsynchronizedメソッド、又はsynchronizedコードブロック内で行わなければならない。

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。