忍者ブログ
  • 2024.08
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.10
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/09/19 11:56 】 |
適当にメモ
C++に関するちょっとしたメモ
でも長いので続きにしまっておく
ちょっとした小技の盛り合わせみたいな?

オブジェクト指向以外の内容はほとんどこれで終わりです。
1日で参考書の300ページ以上をスルーする超駆け足でした。
いよいよ次回から空っぽのエンドレスバトルのようなゲームの
作成に関わってきます。
名前空間という範囲を作ることができる
namespace Ns{
  int var;
  void func(){
    int a,b,c;
    ...
  }
}
などで宣言して適当にNs::varなどで中身を使う
Ns::をわざわざつけるのが面倒な場合はUsing文で指定しておく
Using Ns::var;
Using namespace Ns;

スコープ演算子の使い方
名前空間::変数名など
stdという名前空間にあるcoutはstd::coutでいじれる
グローバル名前空間にあるグローバル変数gvarは::gvarでいじれる

他のファイルで宣言されているグローバル変数を使う場合はextern int gvar;で宣言しておく

静的変数
ローカル変数の前にstaticをつけると関数が終了してもその変数が破棄されない
プログラムの実行開始時にメモリ上に保持され初期値も与えられる
プログラムの実行が終了する直前まで消えない。
staticを関数やグローバル変数につけると同じファイル内でのみ呼び出すことが可能(内部リンケージを持つ)

グローバル変数や静的寿命を持つローカル変数は指定が無い場合に0で初期化される

動的メモリ
new 型名でメモリを確保する
int *p;
p = new int;
delete ポインタ名でメモリ解放する
delete p;

配列の場合
int *p;
p = new int[4];
delete[] p;

変数を格納するメモリ領域の名前は
・ローカル変数はスタック
・静的変数は静的記憶領域
・動的に確保されるメモリは動的記憶領域(ヒープ領域)
とそれぞれ呼ばれるらしい
スタックと呼ぶのは紛らわしいんじゃないかと思う

関数のプロトタイプ宣言をまとめたファイルをヘッダファイルと呼ぶ
#include "proto.h"などで読み込む
通常はプロトタイプ宣言はヘッダファイルに分けておくらしい
分けておけばヘッダファイルを読み込むだけで呼び出すときに引数などを間違えているとエラーを吐く
本にはそう書いてあったけど実際にはプロトタイプ宣言だけでなく列挙型とかextern int gvar;とかも書いて良いような?

列挙型
enum Type {Identifier1, Identifier2, Identifier3};
Type型の変数を使えるようになる
この場合Type型にはIdentifier1,Identifier2,Identifier3のどれかが格納できる
Type enumerate;
enumerate = Identifier2;
手元の本ではswitch文の例が書いてあった

共用体
union Type {
  int a;
  int b;
};
メンバがメモリを共有する
どれを読み書きても同じ場所のメモリを読み書きする
Type uni;
uni.a=1;
とするとuni.bの値も1になる

アロー演算子
構造体のメンバへのアクセスはst.memでアクセスする
構造体へのポインタを使って構造体のメンバにアクセスする場合はpt->memでアクセスする

「せいてき」で変換すると「静的」ではなく「性的」と変換される
私のPCは病気でしょうか

PR
【2013/02/14 21:27 】 | C++習得 | 有り難いご意見(0)
<<有効数字0桁? | ホーム | 参照>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>