第一章CからC++へ
2521 ワード
目次 参照動的メモリ割り当て 関数デフォルトパラメータ&インライン関数&リロード関数 デフォルトパラメータ インライン関数 リロード関数 クラスとオブジェクト 構造化プログラム設計の欠陥 オブジェクト向けプログラム設計
*北京大学郭炜C++慕課受講ノート*
参照は、変数に別名を付けることに相当し、そのうちの任意の変数の変更によって、別の変数値の変更も生じる である.使用法: 参照定義後、参照オブジェクト を変更することはできません.に .
関数パラメータ 用関数戻り値 ダイナミックメモリ割り当て用法 と を割り当てただけである. を解放するだけである.
単純なタイプの配列については、両者に差はない deleteは配列空間を解放するが、最初の要素の構造関数のみを呼び出し、残りの要素は呼び出さない.
関数デフォルトパラメータ&インライン関数&リロード関数
デフォルトのパラメータ目的:プログラムの拡張性を高める(パラメータを追加する場合、元のパラメータを変更する必要はない) は右側の連続するいくつかのパラメータのデフォルトのみで、あるパラメータ をスキップすることはできません.
インライン関数目的:関数呼び出しのオーバーヘッドを低減する は簡単な関数に適用され、実行速度は 速い.コンパイラは、呼び出し部 に関数コードを直接埋め込む.
さいかかんすう目的:ネーミングの複雑さを低減する 条件:関数入力パラメータ個数|タイプ|順序が異なる(戻りタイプが異なる場合はカウントしない) コンパイラは、関数入力タイプに応じて対応する関数 を選択する.
クラスとオブジェクト
構造化プログラム設計の欠陥プログラム=データ構造+アルゴリズム プログラムはグローバル変数と多くの相互呼び出し関数からなり、関数とその操作のデータ構造は直観的に関連していない である.プログラムの規模が大きくなるにつれて、関数とデータ構造の関係、関数間呼び出しの関係は直感的ではない である.は概念をカプセル化、隠すことがなく、プログラムのメンテナンス、拡張、エラー に不利である.関係が複雑で、 を多重化することが困難である.
オブジェクト向けプログラミングオブジェクト向けプログラム=クラス+クラス+クラス+… は、データ構造とそのデータ構造を操作する関数とを結合する、すなわちパッケージ である.特徴:抽象、パッケージ、継承、マルチステート メモリ割り当て:メンバー変数のサイズの和に等しく、関数はオブジェクト共通であり、 が格納される.演算: を直接比較することはできません.アクセス属性: privateオブジェクトメンバー関数または同類メンバー関数のみが にアクセスできます. protected同類メンバー関数および派生クラスのみが にアクセス可能 public任意の場所から にアクセス可能
非表示:privateオブジェクトはメンバー関数のみでアクセスでき、後期プログラムのメンテナンスが容易 関数の再利用:メンバー関数のパラメータテーブルが異なる場合(デフォルトのパラメータの二義性を避けることに注意する必要があります)、 のように
*北京大学郭炜C++慕課受講ノート*
参照
const
を加える常参照変数の場合、参照変数によって参照値(常ポインタ変数と類似)を変更することはできませんint &getn(){return n;}
int main(){
getn()=5;
output(n);
return 0;
}
int *p=new int;
delete p;
p=new int[10]; //Assign space of the int array for p
delete [] p; //Delete the array
malloc/free
の違い:new
はオブジェクトを作成することができ、構造関数を呼び出すが、malloc
は単純に空間delete
オブジェクトを削除するときに構造関数を呼び出し、クラス内で申請する動的メモリが構造関数によって一括して解放されることを保証するが、free
は単純にポインタが指す空間delete
&delete []
の違い:関数デフォルトパラメータ&インライン関数&リロード関数
デフォルトのパラメータ
インライン関数
さいかかんすう
クラスとオブジェクト
構造化プログラム設計の欠陥
オブジェクト向けプログラミング
=
で値を割り当てることができますが、サイズclass A{
int x;
public:
void value(int n=0){x=n;}
int value(){return x;}
} // value() ,