在这篇博客中,我们将探讨 C++ 编程语言的基础知识,从 C++ 与 C 的区别开始,到 C++ 的优势、流、命名空间以及输入输出等方面。
虽然C++是C的超集,但二者之间存在许多关键区别。以下是一些主要的区别:
1.面向对象:C++支持面向对象编程,这包括类,对象,继承,多态,封装等。而C语言是一个过程式编程语言,不支持这些特性。
// 一个简单的C++类示例
class Rectangle {
int width, height; // 私有成员变量
public:
void set_values (int,int); // 成员函数
int area() {return width*height;} // 成员函数
};
此外如果你对对向对象的理解还不够深刻或者无法理解他们,可以看看我的这一篇博客:
【探索C++】用实例教你理解面向对象编程(看不懂打我版)_祐言QAQ的博客-CSDN博客
2.STL(Standard Template Library)模板库:C++有一个强大的标准模板库,提供了一些预定义的类和方法(函数),如向量,链表,集合,栈,队列,图等。C语言没有这样的库。
3.异常处理:C++通过try、catch和throw关键字支持异常处理。而C语言没有内置的异常处理支持。
C++是一种多范式编程语言,它具有诸多优势,包括:
1.性能:C++的运行速度非常快,这使得它在需要大量计算的领域,如游戏编程,很受欢迎。
2.面向对象:C++的面向对象特性使得代码更加模块化,更容易维护和复用。
3.丰富的库支持:C++有大量的库和工具,可以处理各种任务,从图形用户界面到3D图形,从数据库操作到网络编程。
4.强类型检查:C++ 在类型检查方面更加严格,可以减少很多常见的错误。
在C++中,流是一个抽象概念,用于处理输入/输出操作。想象一下现在有一条河流,而cin、cout等是河边垂钓者,数据就像是鱼,等待着这些垂钓者也就是流将其钓起。
常见的流有:
cin(用于从标准输入读取数据);
cout(用于向标准输出写入数据);
cerr(用于输出错误消息);
clog(用于记录程序的一般信息)等。
#include
using namespace std;
int main() {
int myNumber;
// 使用 << 操作符将信息输出到cout流
cout << "Please enter a number: ";
// 使用 >> 操作符从cin流读取输入
cin >> myNumber;
cout << "Your number is: " << myNumber << endl;
return 0;
}
命名空间是 C++ 中用于避免命名冲突的机制。通过将一组相关的变量、函数、类等放在命名空间中,可以有效组织代码。
#include
using namespace std; // 使用std命名空间
int main() {
cout << "Hello, World!"; // 实际上是std::cout
return 0;
}
如果你不想使用 using namespace std;
,你也可以直接使用 std::
前缀来访问std命名空间中的元素:
#include
int main() {
std::cout << "Hello, World!";
return 0;
}
当然你也可以自己写一个属于自己的命名空间,下面就举一个简单的例子,写一个自定义命名空间teacher,存放一个名字“小明”,然后打印出小明。
#include
using namespace std;
namespace teacher {
// 在命名空间里定义字符数组并初始化
char name[20] = "xiaoming";
// 命名空间内部可以定义任何内容
}
int main() {
// 因为 name 是定义在 teacher 命名空间里,所以要么先声明使用 teacher 命名空间,要么在 name 前面加上 teacher::
cout << teacher::name << endl;
return 0;
}
C++ 中的输入输出通过流来实现,可以使用 控制符“<<
” 将数据输出到流中,使用控制符 “>>
” 从流中读取数据,这个“<<
” 看起来很像C中的移位操作符:左移,那么为什么在C++中就成了输出控制符了呢,实际上这就是C++的一个特点:重载,这里简单提一句,后续还会专门讲。
#include
using namespace std;
int main() {
int age;
cout << "Enter your age: ";
cin >> age;
cout << "You are " << age << " years old." << endl;
return 0;
}
这些是 C++ 中基础的输入输出操作,当然还有更多高级用法可以进一步探索。
更多C/C++语言、Linux系统、数据结构和ARM板实战相关文章,关注专栏:
手撕C语言
玩转linux
脚踢数据结构
系统、网络编程
探索C++
6818(ARM)开发板实战
一键三连喔
~