C++ 结合了三个编程流派:

  1. 过程式编程:C 特性,结构化语言,强调过程
  2. 面向对象编程:C++ 对于 C 语言的补充,一切皆对象,强调数据
  3. 泛型编程(generic programming):由 C++ 模板支持,强调代码与数据类型无关(type independent)。

C++ 常用标准:

  • C98
  • C03
  • C11
  • C14

C++ 程序创建的机制

  1. 使用文本编辑器编写源代码
  2. 编译源代码。编译器(compiler)会将源代码转换为平台相关的机器语言/目标代码
  3. 目标代码的链接。由于往往存在多个 C++ 库,需要链接器(linker)把这些目标代码以某种方式整合起来,最终形成可执行代码(executable code)

第一个 C++ 程序

 // myfirst.cpp -- displays a message

 #include <iostream>                           // a PREPROCESSOR directive
int main() // function header
{ // start of function body
using namespace std; // make definitions visible
cout << "Come up and C++ me some time."; // message
cout << endl; // start a new line
cout << "You won't regret it!" << endl; // more output
return ; // terminate main()
} // end of function body

编译源代码:

g++ myfirst.cpp

运行二进制文件:

./a.out

注意:

  • 避免使用 void main() 进行主函数的声明,这不是 C++ 标准格式。不同编译器有可能通过,有可能报错。
  • C++ 标准允许省略 return 0; ,如果不写编译器会自动添加。
  • iostream 称为包含文件(include file)或者头文件(head file)。iostream 提供输入输出相关的功能。
  • #include <iostream> 是一个预处理命令,本质上是把 iostream 的内容替换在这一行,接着由编译器进行编译。
  • 命名空间(namespace):多个头文件可能有相同的函数名,命令空间可以避免函数名冲突。 using namespace std; 表示使用命名空间声明为 std 的头文件,里面的函数或者变量可以直接使用。如果没有这条语句,则需要使用 std::cout 这样的形式进行调用。
  • cout 是一个对象,知道如何显示出各种各样类型的数据。<< 是一个插入运算符(insertion operator),可以将字符串插入到输出流。

大多数程序员遵循这样的 C++ 源码风格:

  1. 每行一条语句;
  2. 函数的花括号的 { 和 } 分别占一行;
  3. 函数中的语句需要缩进;
  4. 函数名与其对应的括号之间不要加空格(为了区分其他 C++ 结构)。

简单的声明语句和赋值语句

// an addition operation
#include <iostream> int main()
{
using namespace std;
int x1;
int x2;
int ans;
x1 = ;
x2 = ;
ans = x1 + x2;
cout << "x1 + x2 = " << ans << endl;
}

编译并运行后的输出:

x1 + x2 = 3

简单的输入语句

 // double your input number
#include <iostream> int main()
{
int now = ;
int birth_year;
std::cout << "What's your birth year?" << std::endl;
std::cin >> birth_year; // using cin
std::cout << "You're " << - birth_year << " years old." << std::endl;
return ;
}

编译运行后会提示输入,输入 1992,得到运算之后的输出:

What's your birth year?
1992
You're 27 years old.

使用 cmath 头文件:

 // using sqrt

 #include <iostream>
#include <cmath> int main()
{
using std::cout;
using std::cin;
using std::endl;
using std::sqrt; float num;
cout << "Give me a number: ";
cin >> num;
cout << "sqrt(" << num << ") = " << sqrt(num) << endl;
}

编译运行,输入 25 后输出:

Give me a number: 2
sqrt(2) = 1.41421

简单的自定义函数

自定义函数需要声明函数原型:

 #include <iostream>

 using namespace std;

 int add(int, int);  // function prototype

 int main()
{
int x1 = ;
int x2 = ;
int sum = add(x1, x2);
cout << "3 + 4 = " << sum << endl;
} int add(int n1, int n2)
{
return n1 + n2;
}

输出如下:

3 + 4 = 7

参考

  • 《C++ Primer Plus》by Stephen Prata

最新文章

  1. 更改WAS Profiles的概要文件的server1的SDK版本
  2. 【hibernate 执行方法未插入数据库】hibernate的save方法成功执行,但是未插入到数据库
  3. seajs加载jquery时提示$ is not a function该怎么解决
  4. 使用java8
  5. Mysql单实例脚本自动化安装
  6. window.event对象详细介绍
  7. Flex中的折线图
  8. CSS3 过渡
  9. UITableView的子控件高度不确定处理
  10. Cocos2d-x shader学习3: sprite描边(Outline)
  11. 基于.NET的APP开发和Windows开发,异步回调差别
  12. Mybatis注意点之#与$区别
  13. Android给控件添加默认点击效果
  14. python frist lesson
  15. epoll_wait惊群问题
  16. SPOJ NSUBSTR Substrings
  17. React技术栈梳理
  18. 如何用SQL脚本在SQL Server Replication中创建合并复制,以及怎么创建分区合并复制
  19. 【JDBC】Mysql海量数据插入——PreparedStatement加快数据插入
  20. Spring-事务管理(Transaction)

热门文章

  1. MySQL学习笔记2————基础篇记录
  2. python实现的WebSocket客户端
  3. oracle- 审计日志
  4. HTML5网页上播放mp4失败的原因
  5. 企业微信同步LDAP
  6. Let&#39;s Encrypt之acme.sh
  7. mysql插入数据频繁出现坏表
  8. HyperLogLog算法分析及其应用
  9. JSON.parse() 与 JSON.stringify()
  10. 获取豆瓣电影数据(R与API获取网页数据)