C++是 C 的超集、通俗的说可以在 C++程序内写 C 语言代码,而在 C 程序内不能使用 C++的特性、可见 C++有很大的包袱,背负着许多的任务。如果您没有学习过 C 语言那么则可以在学习过 C++后然后学习 C 与 C++的对比,如果学习过 C 语言也会使得学习 C++非常快。
编写一个最简单的 C++程序
//example1.cpp
int main(){
return 0;
}
C++的程序入口为 main 函数,会从执行 main 函数内的代码开始我们的程序,main 函数返回的内容必须为 int 类型
sudo apt install g++
或者
sudo yum install g++
g++ -o main main.cpp
or
g++ main.cpp -o main
多文件分离编译
g++ main.cpp calc.cpp -o app
运行程序
./main
程序的最大特点在于程序是解决一类问题
再 C++中提供了标准库 iostream 库,其包含了两个基础类型,istream、ostream 分别为输入流与输出流。一个流就是一个字符序列,是从 IO 设备读出或者写入的。流表达的是随着时间推移、字符的顺序生成或消耗的。
标准输入输出对象 4 个 IO 对象
cin 标准输入、cout 标准输出、ceer 输出警告、clog 输出程序运行时一般性信息。
//example2.cpp
#include<iostream>
int main(int argc,char**argv){
std::cout<<"Enter two numbers"<<std::endl;
int var1=0,var2=0;
std::cin>>var1>>var2;
std::cout<<var1<<" "<<var2<<std::endl;
return 0;
}
’<<’操作符:左侧为 io 对象,右侧要流到此 io 对象的内容 std::endl 为操纵符的特殊值、写入 endl 效果为结束当前行、并将与设备关联的缓冲区的内容刷新的设备中。
std::endl std::是什么玩意、它是 C++中的命名空间知识、现在不必了解。
’>>’操纵符:左侧为 io 对象,从 istream 读取数据,存到指定的对象中,输入运算符返回其左侧运算对象作为计算结果
std::cin>>var1>>var2;
//等价于
(std::cin>>var1)>>var2;
//因为std::cin>>var1 返回std::cin
//单行注释
/*多行注释
2022-4-14
*/
int main(){
return 0
}
//example3.cpp
#include <iostream>
int main(int argc, char **argv)
{
int sum = 0, val = 1;
while (val <= 10) //循环条件
{
+= val;
sum ++; //等价于 val=val+1
val}
std::cout << sum << std::endl; // 55
}
pro 版本
//example4.cpp
#include <iostream>
int main(int argc, char **argv)
{
int sum = 0, value = 0;
//读取数据指导遇到文件尾部,计算所有读入的值的和
while (std::cin >> value)
{
+= value;
sum }
std::cout << sum << std::endl;
return 0;
}
当使用 istream 对象作为条件时,其效果时检测流的状态,当遇到文件结束符 end-of-file,或者遇见一个无效的输入时,istream 对象的状态会变得无效,是一个类假值
//example5.cpp
#include <iostream>
int main(int argc, char **argv)
{
int val = 0;
int cnt = 0;
if (std::cin >> val)
{
++;
cntwhile (std::cin >> val)
{
if (val == 0)
{
break;
}
++;
cnt}
}
std::cout << "cnt " << cnt << std::endl;
return 0;
}
/**
* @brief 测试样例
* 1 2 3 4 5
* 0
* cnt 5
*/
我们指导 C++是一个 C 的超集、它支持多种编程范式如面向对象、泛型编程、函数编程等。
在面向对象里,有个重要的东西叫做类,例如我们有自己定义一个 People 类,C++允许我们定义其>>输入操作符、<<输出操作符,= 赋值操作符、‘+’、‘-’、‘*’、 ‘/’ 、‘+=’ 、‘-=’ 、‘*=’ 、‘/=’ 允许我峨嵋你自定定义它在 People 对象上的行为,总之 C++是非常强大的,同时提供了成员函数也就是方法。
如果接触过 C++会感觉很简单、但也会学到一些新的内容,例如 istream 对象做判断条件。但是如果你是一个程序小白的话,可能会感觉这是什么啊,学它比登天还难,我们知道一个道理心急吃不了热豆腐,熬粥还得慢慢来,所以静下心来不要急躁,在第 1 章看过这些只要你觉得喔!这么厉害,我想这就够了,后面会严格遵循 C++ Primer 第 5 版的目录顺序进行