一、基础语法
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/n/182031.html
微信扫一扫
支付宝扫一扫