l .お知らせ 内容 LINK FILE
HTML Win PC Unix MS-DOS C C++ Mfc Java |
.C++言語_
| 1 クラス | 2 派生クラス | 5 演算子のオーバーロード | クラス(1) | |
| 準備 | 3 オブジェクト | 6 テンプレート | 8 etc | クラス(2) | |
| C と C++ | 4 フレンド・多重継承 | 7 メモリ確保・例外処理 | 未使用 | ||
|
|
cout << dec; // 10進表示を指定します。 cout << 123 << endl; // 123 と表示されます。 cout << 0x10 << endl; // 16進数の 10 が、10進数で 32 と表示されます。 cout << oct; // 8進表示を指定します。 cout << 64 << endl; // 8進数で 100 と表示されます。 cout << hex; // 16進表示を指定します。 cout << 64 << endl; // 16進数で 40 と表示されます。 cout << 1.2 << endl; // 小数は 10進数のまま 1.2 と表示されます。 |
| 以下は |
#include <iomanip.h> | の記述が必要です。 |
|
cout << setw(8) << "ABC"; // 00000ABC と表示されます。 |
|
cout.width(4); // 4 桁表示の指定をします。 cout << 34 << endl; // 0034 と表示されます。 cout << 10./3. << endl; // 4 桁以上なので、3.33333 と表示されます。 cout.width(); // 元に戻します。 |
|
cout.fill('*'); // 空桁に * を指定します。 cout << setw(4) << 12 << endl; // **12 と表示されます。 cout.fill(' '); // 空桁をスペースに戻します。 |
|
cout << setw(4) << 12 << endl; // 0012 と表示されます。 cout << setiosflags(ios::left); // 左揃え表示を指定します。 cout << setw(4) << 12 << endl; // 1200と表示されます。 cout << setiosflags(ios::right); // 右揃え表示に戻します。 |
|
cout << setprecision(4); // 精度を 4桁に指定します。 cout << 10./3. << endl; // 3.333 と表示されます。 cout << setprecision(20); // 精度を 20桁に指定します。 cout << 10./3. << endl; // 3.33333333333333(関数の精度以内。) cout << setprecision(6); // 標準の 6 桁に戻します。 |
|
cout << setprecision(3); // 精度を 3桁に指定します。 cout << setiosflags(ios::scientific); // 小数部の精度指定とする。 cout << 1234.5678 << endl; // 1234.567 と表示されます。 cout << setprecision(6); // 標準の 6 桁に戻します。 |
|
cout << setprecision(3); // 精度を 3桁に指定します。 cout << setiosflags(ios::fixed); // 仮数部の精度指定とする。 cout << 1234.5678 << endl; // 1.23e+4 と表示されます。 cout << setprecision(6); // 標準の 6 桁に戻します。 |
|
|
func(10, 3); // 3 と表示されます。 func(1000, 3); // 333 と表示されます。 func(1000., 3.); // 333.333 と表示されます。 |
|
int x; // 変数 x を宣言します。 int &y=x; // 変数 x の参照 y を宣言します。 // 参照 y には変数 x のポインタが代入されます。 y=5; // 参照 y を使って x に代入します。 // 参照 y は変数と同じ書式で使用できます。 y は x の別名であると考えることができます。 |
|
void func(int y) // 実引数 x の値を、仮引数 y(変数)にコピーします。 { y=y+1; } // 仮引数 y を変えても、実引数 x の値は変りません。 void main() { int x=10; func(x); // x の値は 10 のまま。 } |
|
void func(int &y) // 実引数 x のポインタを、仮引数 y(参照)にコピーします。 { y=y+1; } // 参照 y は x のポインタなので、x は +1 されます。 void main() { int x=10; func(x); // x の値は +1 され、11 になります。 } |
int y; // グローバル変数を宣言。
int &func() // 関数 func と、その返り値 y の参照を宣言。
{ y=y+y; return y; }
void main()
{ y=5; // 普通に、変数 y に 5 を代入。
int z=func(); // 普通に関数を呼び出す。5+5 で y=10 になる。
func()=30; // 返り値の参照を使って y に 30 を代入。
} // func ()は、変数 y の参照(変数と同じように使えるポインタ)
|
|
inline void func() // インラインの指定をした関数。 { cout << "AA"; } void main() { finc(); // 関数の呼びだし。 } |
|
// 関数 func() は、いらないので消されます。 void main() { cout << "AA"; // 関数の内容に置き換えられます。 } |
|
|
char *p; // 確保したメモリの位置を記録するためのポインタ変数 p=new char[20]; // char 型のデータを 20 個格納できるだけのメモリを確保 *(p+0)='A'; // 確保したメモリにデータを格納 int *q=new int; // int 型のデータを 1 個格納できるだけのメモリを確保 *q=123; // 確保したメモリにデータを格納 |
|
delete p; delete q; |
|
char (*t) [3][4][5]; // ポインタ変数の配列 t を宣言 t = new char[2][3][4][5]; // 四次元配列を格納するメモリを確保 delete [] t; // 使用が終ったらメモリを解放します |
ポインタ配列 代入されるポインタ t[0][0][0] 先頭+0*(3*4*5)+0*(4*5)+0*5 t[0][0][1] 先頭+0*(3*4*5)+0*(4*5)+1*5 t[0][0][2] 先頭+0*(3*4*5)+0*(4*5)+2*5 t[0][0][3] 先頭+0*(3*4*5)+0*(4*5)+3*5 t[0][1][0] 先頭+0*(3*4*5)+1*(4*5)+0*5 t[0][1][1] 先頭+0*(3*4*5)+1*(4*5)+1*5 t[0][1][2] 先頭+0*(3*4*5)+1*(4*5)+2*5 t[0][1][3] 先頭+0*(3*4*5)+1*(4*5)+3*5 |
t[0][2][0] 先頭+0*(3*4*5)+2*(4*5)+0*5 t[0][2][1] 先頭+0*(3*4*5)+2*(4*5)+1*5 t[0][2][2] 先頭+0*(3*4*5)+2*(4*5)+2*5 t[0][2][3] 先頭+0*(3*4*5)+2*(4*5)+3*5 t[1][0][0] 先頭+0*(3*4*5)+0*(4*5)+0*5 t[1][0][1] 先頭+1*(3*4*5)+0*(4*5)+1*5 -- 途中省略 -- t[1][2][3] 先頭+1*(3*4*5)+2*(4*5)+3*5 |
参考 t[0] 先頭+0*(3*4*5) のアドレス t[1] 先頭+1*(3*4*5) t[0][0] 先頭+0*(3*4*5)+0*(4*5) t[0][1] 先頭+0*(3*4*5)+1*(4*5) t[0][2] 先頭+0*(3*4*5)+2*(4*5) t[1][0] 先頭+1*(3*4*5)+0*(4*5) t[1][1] 先頭+1*(3*4*5)+1*(4*5) t[1][2] 先頭+1*(3*4*5)+2*(4*5) |
|
|
|
C++言語
| 準備 | C と C++ | 1 クラス |