C++とC言語の違い

4037 ワード

C++はC言語のアップグレード版です.C++はC言語の既存のすべての利点を保持し,オブジェクト向けのメカニズムを追加した.C++はCから発展し、Cと互換性がある.C言語で書かれたプログラムは基本的にC++に変更せずに使用できます.C++の名前からCのスーパーセットであることがわかります.C++は、プロセス向けの構造化されたプログラム設計にも、オブジェクト向けのプログラム設計にも使用でき、強力なハイブリッド型のプログラム設計言語です.C++の中で最も重要な概念は「クラス」であり、クラスがあってこそオブジェクト向けのプログラム設計がある.「クラス」はC++言語を学ぶ核心であり、C++初心者が攻略しなければならない難関である.C言語にはクラスがないので,概念的には飛躍である.
書風
標準C言語(ANSI C)の注釈は「/*......*/」のみであり、C++の注釈は「/*......*/」/「//」であってもよい.C言語コードでは「//」も使用できるが、現在多くのC言語コンパイラもC++コンパイラであるためである.
関数にパラメータがない場合、C言語はvoidを使用することを推奨し、C++は書かないことを推奨します.
C言語コード:
/*  C   ,         */
/*
int myFunc(int x, int y) {
    int width;    /*    */
int height;   /*    */
/* Some Code */
}
* /

/* C          (  ) */
void myFunc(void)
{
    /* Some Code */
}

C++コード:
// C++            
/*
int myFunc(int x, int y) {
    int width;    //  
    int height;   //  
    // Some Code
}
*/

// C++          (  )
void myFunc()
{
    // Some Code
}

変数と関数のプロトタイプの説明
C言語では関数の原型申明が提案されているが,呼び出し先の後ろの関数は確かに申明しなくてもよい.C++では,関数定義の前後を問わず,事前に明らかにしなければならない.一方,局所変数の定義は,C言語では関数体の先頭部分である必要があり,ある文の後に変数を定義することは誤りであるが,C++にはこの制限はない.C言語コード:
// void myFunc(void)   // C          

void myFunc(void)
{
    for (int i = 0; i < 10; i++) //   。i      for  
        // Some Code
    }
}

int main(void)
{
    myFunc();
    int x = 0;    //  。   myFunc();  

    return x ;
}

C++コード:
void myFunc(void)   //C++         
void myFunc(void)
{
    for (int i=0; i<10; i++) {  //C++    
        // Some Code
    }
}

int main(void)
{
    myFunc();
    int x = 0;    //C++    

    return x ;
}

その他の相違点
C++言語はC言語が拡張されたもので、Cプログラムは自然に直接使用することができますが、確かにいくつかの違いがあります.C言語では、文字定数は整数として扱われますが、C++言語ではなく、文字定数は文字として扱われます.これは小さいですが、重要な点です.C言語におけるグローバル変数の複数回定義はよくないが,誤りはない.C++言語でエラーが発生しました.C言語の命名制限は31文字で、C++言語には制限はありませんが、長すぎて使いにくいです.C言語でもmain()関数が呼び出されますが、もちろんこれは良い方法ではありません.C++言語ではmain()が呼び出されません.C言語ではレジスタ変数のアドレスを取ることができず,C++言語では可能である.C言語にはboolタイプはありませんwchar_tはマクロ定義で、C++言語でbool基本タイプとwchar_が追加されましたt拡張タイプ.C言語で構造体で変数を定義する場合、「struct構造体名変数名」はC++で「struct」は省略できます.
C++言語の新旧バージョン
C++言語自体も発展しており、新旧バージョンの書き方も異なる.私たちのチュートリアルは言語の発展過程を議論していないので、新しい内容だけを話します.これも時代と共に進んでいるのだろう.C++のもう一つの重要な新概念は「ネーミングスペース」です.ネーミングスペースは名前の衝突を防止して明らかにした「領域」です.例えば、Cディスクのファイルが増えると同じファイル名がある可能性があります.そうすれば、ディレクトリで管理し、同じファイル名を異なるディレクトリに置く必要があります.ディレクトリ名が徐々に増加し、重複する名前がある場合、1つは親ディレクトリを追加することです.もう1つは、同じディレクトリ名を異なるディスクの下に置くことです.ネーミングスペースの後ろには専門の章があります.旧バージョンC++の書き方:
#include   //“.h”   

int main(void)
{
    // Some Code
}

新しいバージョンC++の書き方:
#include 
using namespace std;  //         

int main()
{
    // Some Code
}

コンソールの入出力
C言語のコンソール入出力は関数で実現され,printf()とscanf()関数が最もよく用いられる.C++言語では一般的に演算子「<>」が使われていますが、これはC言語の関数よりも機能が強く、さらに側面があります.以下では基本的な使用のみを紹介し、より強力な機能は「クラス」を学んでから説明すると分かりやすいです.
C言語の演算子「<>」はビット操作演算子であり、C++では依然として有効であり、入力として使用される場合、一番前にcinまたはcoutが必要であり、コンソールからの入力または出力を表し、cinとcoutはC++で定義された入力ストリームである.出力時に車に戻る必要がある場合は「」も「endl」も使えます. 
#include 
#include 
using namespace std;

int main ( )
{
    int i, j;
    double d;
    string s;  // C++    string   

    i = 10;
    d = 123.45;
    s = "http://see.xidian.edu.cn/cpp/biancheng/cpp/rumen/";

    cout << "       :";
    cin >> j;
    cout << "i=" << i << "
"; cout << "j="; cout << j; cout << endl; cout << "d=" << d << endl; cout << s << endl; return 0; }

出力の実行:i=10 j=13454181 d=23.45の整数を入力してくださいhttp://see.xidian.edu.cn/cpp/biancheng/cpp/rumen/