ホームページ >バックエンド開発 >C++ >C++ と C++: 違いは何ですか?

C++ と C++: 違いは何ですか?

WBOY
WBOYオリジナル
2024-04-03 17:45:01918ブラウズ

C と C の違い: 型システム: C はより弱く、C はより強力で、明示的な変換が必要です。オブジェクトとクラス: C ではサポートされていません。C ではサポートされており、カスタム タイプの作成と使用が可能です。継承とポリモーフィズム: C ではサポートされていませんが、C ではサポートされており、クラスの継承と再利用機能が可能です。関数と演算子のオーバーロード: C ではサポートされていません。C ではサポートされており、カスタム関数と演算子の動作が可能です。

C++ と C++: 違いは何ですか?

C 対 C: ニュアンス分析

はじめに

C はい、いいえC言語から派生したオブジェクト指向プログラミング言語。類似点にもかかわらず、2 つの言語には重要な違いがあります。この記事では、これらの違いを検討し、理解を深めるためにコード例を示します。

型システム

  • C: 変数を暗黙的に他の型に変換できる、より弱い型システムを使用します。
  • C: 明示的な型変換を必要とするより堅牢な型システムを備えているため、コードの安全性と可読性が向上します。
// C
int a = 10;
double b = a; // 隐式转换

// C++
int a = 10;
double b = static_cast<double>(a); // 显式转换

オブジェクトとクラス

  • C: オブジェクト指向プログラミングの概念 (クラス、オブジェクト) はサポートされていません。
  • C: オブジェクト指向プログラミングをサポートし、そこからユーザー定義の型 (クラス) とインスタンス (オブジェクト) を作成できます。
// C++
class Person {
public:
    string name;
};

Person john; // 创建一个 Person 对象
cout << john.name; // 访问对象的成员

継承とポリモーフィズム

  • C: 継承とポリモーフィズムはサポートされていません。
  • C: 継承とポリモーフィズムをサポートし、派生クラスが基本クラスのプロパティとメソッドを継承できるようにします。
// C++
class Employee : public Person {
public:
    int salary;
};

Employee mary; // 创建一个 Employee 对象
cout << mary.name << ", " << mary.salary; // 访问对象属性和方法

関数のオーバーロードと演算子のオーバーロード

  • C: 関数のオーバーロードまたは演算子のオーバーロードはサポートされていません。
  • C: 関数のオーバーロード (名前は同じだがパラメーターが異なる関数) と演算子のオーバーロード (カスタム型の演算子の定義) をサポートします。
// C++
int add(int a, int b); // 函数重载
double operator+(double a, double b); // 运算符重载

実際的なケース

平均を計算するプログラムを考えてみましょう:

C

#include <stdio.h>
int main() {
    int num1, num2;
    printf("Enter two numbers: ");
    scanf("%d %d", &num1, &num2);
    float avg = (num1 + num2) / 2.0;
    printf("Average: %.2f\n", avg);
}

C

#include <iostream>
using namespace std;
int main() {
    int num1, num2;
    cout << "Enter two numbers: ";
    cin >> num1 >> num2;
    double avg = static_cast<double>(num1 + num2) / 2;
    cout << "Average: " << fixed << setprecision(2) << avg << endl;
}

C バージョンでは、正確な平均値を得るために、明示的な型変換を使用して avgdouble 型になるようにします。さらに、coutcin が入出力に使用され、ユーザー インターフェイスが強化されています。

以上がC++ と C++: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。