特性:高效简洁快速可移植,oop,泛型编程。
二重性:oop&低级硬件访问。
C++程序从 main() 函数开始执行
函数由函数头和函数体组成,且函数头需要指出函数的返回值以及函数期望通过参数传递给它的信息类型:
// 函数头
int check(int code)
// 函数体开始
{
// TODO: to check code
// 返回值
return 0;
}
// 函数体结束
main函数默认向操作系统return 0;(也叫退出值) 此规则不适用于main以外的函数。
尽可能在首次使用变量前进行声明。
应当为程序中使用的每个函数提供原型:
// 原型
int check();
// 函数定义
int check() {
// TODO: do something
return 0;
}
原型与定义:原型只描述函数接口(只描述发送给函数的信息和返回的信息),而定义是包含了函数的代码。
编译器在编译程序时,会在库文件搜索使用到的函数。
库文件与头文件:库文件包含了函数的编译代码,而头文件中则包含了原型。
- 将 using namespace std; 放在函数定义之前,让文件中所有的函数都能够使用命名空间 std 中所有的元素;
- 将 using namespace std; 放在特定的函数定义中,让该函数能够使用命名空间 std 中的所有元素;
- 在特定的函数中使用类似 using std::cout; 这样的编译指令,而不是 using namespace std; ,让该函数能够使用指定的元素,如 cout;
- 完全不实用编译指令 using ,而在需要使用命名空间std中的元素时,使用前缀 std:: ,如 std::cout。
std::cout 输出:
std::cout << "hello, world!";
std::cout << "--hello, world!" << std::endl;
std::cout << "hello, " << std::endl; << "world!" << std::endl;
输出结果:
hello, world!--hello, world!
hello,
world!
std::cin 输入:
int age;
std::cout << "Enter age: ";
std::cin >> age;
std::cout << "age = " << age << std::endl;
输出结果
Enter age: 12 // 12为输入数字,并回车
age = 12
库文件与头文件:库文件包含了函数的编译代码,而头文件中则包含了原型。
int age = 12;
std::cout<< "age = " << age << endl;