初識C++

3397 ワード

今日は新学の言語C++をご紹介します.
一.C++について
1.まずC++はC言語二に基づいて創造された新しい言語であり、クラスのメカニズムを拡張している.
そして最も簡単なC++のプログラムを見てみましょう.
#include
#include
using namespace std;



int main()
{
	
	cout<

2.C++のキーワード:
C言語と同様に、sizeof、if、do、return、class、bool、break、continue、externなど、C++にも多くのキーワードがあります.
3.ネーミングスペース:
C/C++では、変数、関数、および後で学習するクラスが大量に存在します.これらの変数、関数、クラスの名前はグローバルな役割ドメインに存在し、多くの競合を引き起こす可能性があります.ネーミングスペースを使用する目的は、ネーミング競合や名前汚染を回避するために識別子の名前をローカライズすることであり、namespaceキーワードの出現はこのような問題に対応している.例:
#include
#include
using namespace std;



namespace N1{        //      
	int a=10;        //     。
	int b=20;
}
int main()
{
	int n=N1::a;      //      
	cout<

ネーミングスペースの使用方法は3つあります.
(1)例題のようにネーミングスペース名および役割ドメイン限定子を用いる.
(2)usingを使用してネーミングスペースのメンバーを導入する.
(3)using namespaceネーミングスペース名を用いて導入する.
4.C++のと入力:
前にも使いましたが、出力はcout<>変数です.最も重要なのは、出力と入力を使用する場合は、ヘッダファイルを使用する必要があります.
二.C++のデフォルトパラメータ:
1.定義:デフォルトのパラメータは、関数を宣言または定義するときに関数のパラメータにデフォルト値を指定します.この関数を呼び出すときに、実パラメータが指定されていない場合はデフォルト値を使用します.そうでない場合は、指定した実パラメータを使用します.
2.デフォルトは半デフォルトパラメータと全デフォルトパラメータに分けられます.
3.使用時に注意してください:半デフォルトパラメータを使用する場合は、右から左にスペアタイヤを設定し、間隔を空けることはできません.
適用例:
#include
#include
using namespace std;

int add(int a=3,int b=4)
{
	return a+b;
}
int main()
{
	int q=add(1);
	int p=add();
	cout<

また、ヘッダファイルで関数を宣言する場合は、このスペアタイヤでのみ使用できます.定義で使用するのは間違っています.
三.関数の再ロード:
1.定義:関数の特殊な状況であり、C++は同じ役割ドメインでいくつかの機能類似の同名関数を宣言することを許可し、これらの同名関数のパラメータリスト(パラメータの個数、タイプ、順序)は異なる必要があり、よく機能類似データ型の異なる問題を処理する.
2.C言語では、呼び出し関数は、関数名に-を付けて呼び出されるので、関数リロードは使用できません.一方、C++では、パラメータリストの内容から変換されたシンボルに基づいて関数を呼び出すので、関数の再ロードを実現することができます.
3.C++でC言語を使いたい場合は、extern"C"で実現できます.
四.参照:
1.定義:参照は新しい変数を定義するのではなく、既存の変数に別名を付けます.コンパイラは参照変数にメモリ領域を開きません.参照された変数と同じメモリ領域を共有します.
例:
#include
#include
using namespace std;


int main()
{
	int a=10;
	int& b=a;
	cout<

2.参照のプロパティ:
(1)参照は定義時に初期化する必要がある.
(2)1つの変数に複数の変数を持つことができる.
(3)1つのエンティティを参照すると,他のエンティティを参照することはできない.
3.参照とポインタの違い:
1.参照は定義時に初期化する必要があります.ポインタは必要ありません.
2.参照は、初期化時にエンティティを参照すると、他のエンティティを参照できなくなり、ポインタはいつでも同じタイプのエンティティを指すことができます.
3.NULL参照はありませんが、NULLポインタがあります.
4.sizeofでは意味が異なります.参照結果は参照タイプのサイズですが、ポインタは常にアドレス空間に占めるバイト数(32ビットプラットフォームでは4バイト)です.
5.自己加算参照を参照するエンティティが1増加し、ポインタが1つのタイプのサイズから後方にシフトします.
6.マルチレベルポインタがありますが、マルチレベル参照はありません.
7.エンティティへのアクセス方法が異なり、ポインタは明示的に参照を解く必要があり、参照コンパイラは自分で処理します.
8.参照はポインタよりも安全です.
五.インライン関数:
1.定義:inlineで修飾された関数をインライン関数と呼び、コンパイル時にC++コンパイラがインライン関数を呼び出す場所で展開し、関数スタックのオーバーヘッドがなく、インライン関数がプログラムの実行効率を向上させる.
2.特性:
1.inlineは空間で時間を変える方法で、呼び出し関数のオーバーヘッドを省く.したがって、コードが長い、またはループ/再帰的な関数は、インライン関数として使用するのに適していない.
2.inlineはコンパイラにとってただの提案であり、コンパイラは自動的に最適化され、inlineとして定義された関数内に循環/再帰などがある場合、コンパイラは最適化時にインラインを無視する.
拡張:
1.マクロのメリットとデメリット:
メリット:
(1)性能向上.
(2)コードの多重化を強化する.
欠点:
(1)マクロをデバッグできません.
(2)コードの可読性が悪い.
(3)タイプ安全のチェックはありません.
2.C++でマクロの代わりに使用できるもの:
(1)定数定義:const
(2)関数定義:インライン関数.
(3)型再定義:typedef.
以上がC++の基本概念です.