スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Cになくて C++にあるもの

変数型として、以下のものが増えた
bool型
が増えて、true、falseを扱えるようになった
0がfalseで、それ以外がtrueと同じ意味なのは、Cのときと変わらない

string型
文字の配列ではなく、文字列型が出てきた
きっと、便利だと思う

キャストの形が増えた
少し、やっかい
覚えるより慣れろといったところ
static_cast<型>x
暗黙の型変換が行われるような変換に対して使用する
例) int を double にする

dynamic_cast<型>x
基底クラスへのポインタを、派生クラスのポインタに変換する
Javaで、スーパーにはサブが入る的なアレな感じで覚えればいいでしょうか
なんとなく、分かる気がする

const_cast<型>x
const宣言された変数や、volatile宣言された変数のソレを外す
またはその逆ができるようだ

reinterpret_cast<型>x
int を int * へ
のように、ポインタへの型変更を行う

めんどくさいですねー


閑話休題・・・
今日(7月22日)は日本で皆既日食が見られる日でした
関東は一日中曇りでしたが、おかげで(!!?)日食を肉眼で見ることができました
それでも危険なんでしょうが、うれしかったです
おかげで午後の仕事が頑張れました




次は関数に関して
省略時実引数
int func(int a = 3); と宣言し、
func(); とすると、
aは3で初期化される
便利だ!

参照を返す関数
int& ref()
{
 static int a;
 return a;
}
と宣言し、
ref() = 5; とすると、
aのアドレスに値を書き込むことができる
何をしているのかよく分からないが、あとあとになってかなり重要な位置を占めるらしい
今のところ、何がうれしいのかよく分からん

多重定義
同じ名前で、引数の数や型が異なる関数を定義できる
Javaでいうところのオーバーロード

インライン関数
関数マクロ(ってよく知らないんだけど)みたいなもの
コンパイル時に関数内部を呼び出した場所に展開する
C++では、関数マクロよりもインライン関数が推奨される


オブジェクト指向的な話
徐々にC++っぽい話が出てきてワクワクするようなめんどくさいような......
new演算子 および delete演算子
Cのmallocなんかと同様の働きっぽい
int *x = new int; のように使う
int *x = new int(5); とすると、5で初期化される(5個の配列にはならない)
いらなくなったら
delete x; として、ヒープ領域にメモリを変換する
実は、
int x(5);
int x = int(5);
という記述もOKなんだそうだ

new演算子で配列 および delete[]演算子
int *x = new int[5];





と、だんだん難しい話が出てきて、ちょこちょこ読みながらではまとめられそうにないので、おしまい
オブジェクトの生成は、またあとでまとめなおさなければ!

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

森嶋晃介

Author:森嶋晃介
社会人2年目。
独学する勉強のために、いろいろ手を出して、それについて書いていく予定です。
今年こそ、たくさん書くぞ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。