1 简介
c++是一种面向对象编程的编译型语言。
面向对象的编程:以对象为核心的编程范式,对象是类(Class)的实例,类中包括数据的定义和对数据的操作方法。
编译型语言:把整个源码翻译成机器码,最终生成机器码。
c++的源代码为.cpp文件,源代码经过编译变为目标代码(.obj文件),再将库文件代码与目标代码链接得到可执行代码(.exe)。
2 简单上手
新建源文件helloworld.cpp如下:
#include<iostream> // #表示预处理语句,include引入头文件 iostream库
int main() //主函数 {}中为函数体
{
std::cout << "Hello World!" << std::endl; // "<<"是输出运算符;std是命名空间;双冒号是作用域运算符
}
"<<":作为输出运算符,其左边必须是输出流的对象(std::cout 实际是iostream库中提供的标准输出流对象);该语句含义为:把字符串"Hello World!"输出到标准输出对象。为便于理解,可以把输出运算符"<<"看做把右边传递给左边的箭头;
"std":是命名空间;
"::":双冒号是作用域运算符,前面表示命名对象所处的命名空间。
调试运行:
但上述方法仍显繁琐,因此可通过省略主函数体的命名空间和作用域运算符进行改写,如下:
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
}
using namespace std; 即在头文件下方插入: 使用命名空间std。
调试运行:结果与上述相同。
上述两种方法的调试控制台是一闪而过的,为实现窗口保留可改写如下:
#include<iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
cin.get(); //等待键盘输入 也可用system("pause"); 但不推荐这种调用底层的方法
代码编写完成后需要最后转换为.exe格式,由源文件.cpp生成.exe的方法:
将源文件编译得到目标代码(.obj文件):右键.cpp源文件,选择编译,获得.obj文件,将库文件和目标代码链接:右键项目,选择生成,在x64的debug目录下生成可执行文件.exe。
helloworld的代码运行成功后,我们可以继续丰富代码内容,尝试在project1.cpp中加入交互:
#include<iostream>
using namespace std;
int main()
{
cout << "hello world!" << endl;
cout << "输入你的姓名:" << endl;
string name; //定义字符串name
cin >> name; //输入name,">>"为输入运算符
cout << "欢迎您," << name << endl; //通过输出运算符,把name直接接在字符串后
cin.get();
cin.get(); //再接一个,避免调试时直接退出
}
调试运行:
上述内容都只有一个主函数,那么现在我们尝试在主函数外单独定义一个welcome函数:
#include<iostream>
using namespace std;
void welcome() //定义一个函数名为welcome的函数,返回值为空(void)
{
cout << "输入你的姓名:" << endl;
string name;
cin >> name;
cout << "欢迎您," << name << endl;
}
int main() //主函数
{
cout << "hello world!" << endl;
welcome(); //在主函数体中调用welcome函数
cin.get();
cin.get();
}
既然welcome函数可以作为主函数外的一个函数,那么我们就会想到,是否可以将welcome函数单独拿出来,作为一个源函数。将welcome函数单独作为一个源文件,改写如下:
project1.cpp代码为:
#include<iostream>
using namespace std;
void welcome();
int main()
{
cout << "hello world!" << endl;
welcome();
cin.get();
cin.get();
}
welcome.cpp代码为:
#include<iostream>
using namespace std;
void welcome()
{
cout << "输入你的姓名:" << endl;
string name;
cin >> name;
cout << "欢迎您," << name << endl;
}
3 变量、标识符和作用域
(变量名是标识符的一种)。