一、基礎語法
C語言和C++語言的基礎語法有許多相似之處,卻也存在一些不同點。其中最顯著的區別是C++具有類和對象的概念,這是C語言所不具備的。因此,在C++的程序中,可以使用類和對象來實現封裝、繼承和多態等面向對象的特性,而在C語言中則不能。
/* C語言程序示例 */
#include
int main()
{
int a, b, sum;
printf("請輸入兩個整數:\n");
scanf("%d%d", &a, &b);
sum = a + b;
printf("%d+%d=%d\n", a, b, sum);
return 0;
}
/* C++程序示例 */
#include
using namespace std;
class Adder
{
public:
int add(int a, int b)
{
return a+b;
}
};
int main()
{
int a = 2, b = 3;
Adder adder;
cout << a << "+" << b << "=" << adder.add(a, b) << endl;
return 0;
}
二、函數重載
函數重載是C++的一個特性,它允許在一個類或命名空間內定義同名函數,但參數類型、順序和個數不同。C語言中不支持函數重載,也就是說,同名函數在C語言中是不允許存在的。
/* C++中的函數重載 */
#include
using namespace std;
int Add(int a, int b)
{
return a + b;
}
double Add(double a, double b)
{
return a + b;
}
int main()
{
cout << Add(2, 3) << endl; // 5
cout << Add(2.5, 3.5) << endl; // 6
return 0;
}
三、命名空間
命名空間也是C++的一個特性,它可以避免函數、變量和類等命名衝突的問題。C語言中沒有命名空間,因此,如果在C程序中定義同名變量或函數時,就容易出現命名衝突的問題。
/* C++中的命名空間 */
#include
using namespace std;
namespace A
{
int num = 1;
void func()
{
cout << "namespace A" << endl;
}
}
namespace B
{
int num = 2;
void func()
{
cout << "namespace B" << endl;
}
}
int main()
{
cout << A::num << endl; // 1
cout << B::num << endl; // 2
A::func(); // namespace A
B::func(); // namespace B
return 0;
}
/* C語言中不存在命名空間 */
#include
int num = 1;
void func()
{
printf("In C\n");
}
int main()
{
printf("%d\n", num); // 1
func(); // In C
return 0;
}
四、繼承與多態
繼承和多態是C++的核心特性,它們是面向對象思想的重要表現形式。在C++中,一個類可以從另一個類派生出來,從而去繼承父類的屬性和方法。同時,通過虛函數的概念,C++允許派生類對基類的同名函數進行重寫,達到多態的效果。
/* C++中的繼承和多態 */
#include
using namespace std;
class Animal
{
public:
virtual void sound() = 0;
virtual ~Animal() {}
};
class Dog: public Animal
{
public:
void sound()
{
cout << "汪汪汪" << endl;
}
};
class Cat: public Animal
{
public:
void sound()
{
cout << "喵喵喵" <sound(); // 汪汪汪
Animal *animal2 = new Cat();
animal2->sound(); // 喵喵喵
delete animal1;
delete animal2;
return 0;
}
/* C語言中沒有繼承和多態的概念 */
#include
void sound(char *s)
{
printf("%s\n", s);
}
int main()
{
sound("汪汪汪"); // 汪汪汪
sound("喵喵喵"); // 喵喵喵
return 0;
}
五、頭文件
頭文件是C和C++中經常使用的一種技術,它可以將函數和變量的聲明放在頭文件中,從而方便其他文件調用。C語言和C++語言的頭文件在使用上也存在一些差異,其中最主要的區別是C語言中需要使用extern關鍵字來聲明外部變量,而C++中則不需要。
/* C++中的頭文件 */
#include
#include
using namespace std;
/* C語言中的頭文件 */
#include
extern int num;
int main()
{
/* C++ */
string str = "hello world";
cout << str << endl;
/* C */
printf("%d\n", num);
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/182031.html
微信掃一掃
支付寶掃一掃