码迷,mamicode.com
首页 > 编程语言 > 详细

初识C++

时间:2015-07-11 00:56:16      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

先来写一个最简单的C++程序

// helloworld.cpp
#include <iostream>

int main() {
    std::cout << "Hello, Wrold!" << std::endl;
    return 0;
}

这段代码反应了4个问题:

  1. 注释
  2. 预处理指令
  3. main()函数
  4. 输入/输出流

下面主要说一下预处理指令:生成一个C++程序有三步。首先,代码在预处理器中运行,预处理器会识别代码中的元信息;随后,代码被编译成计算机可以识别的目标文件;最后,每一个目标文件链接在一起就变成了一个应用程序。预处理指令以#字符开始,如#include <iostream>,意思就是告诉预处理器:提取<iostream>头文件中的所有内容供当前文件使用。<iostream>头文件声明了C++提供的输入/输入功能,只有程序包含了此头文件,才能完成程序中想要输出的Hello,World!文本。

注意:熟悉C的同学都知道头文件是以.h结尾,比如<stdio.h>。在C++中,标准的头文件省略了.h后缀,如<iostream>,但仍然包含了C中的标准头文件,只是换了名字,比如原来的<stdio.h>变成了<cstdio>。

预处理指令还有#define、#ifdef、#ifndef、#endif等。例如:

#ifndef MYHEADER_H 
#define MYHEADER_H 
// ... 
#endif

这是为了避免重复包含头文件的示例。

这里要提到的是,如果编译器支持#pragma once指令,则可以使用此指令代替上面的指令:

#pragma once
// ...

 

接下来简单说一下std::语法:std::endl代表输出流的结尾,会换行,如同\n字符。::被称为作用域解析运算符,std指的是命名空间,他们合起来使用是为了解决不同代码段之间的名称冲突问题。例如我编写了一段代码,其中定义了一个fun()函数,然而在某天,我使用了第三方库,里面恰好也定义了一个fun()函数,那么编译器则无法判断代码中调用的fun()函数到底属于哪个版本。因此我需要将自己的代码放到一个命名空间中,首先定义命名空间:

namespace mycode {
    void fun();
}

当我使用fun()函数的时候,需要指明其命名空间,有两种方法:

using namespace mycode;

int main() {
    fun();   // 调用的是我自己定义的fun()函数        
    return 0;
}

或者:

int main() {
    mycode::fun();   // 调用的是我自定义的fun()函数
    return 0;
}

现在就明白,cout输出流是属于std命名空间中的,所以写成std::cout。顺便提一下,输入流cin也是属于std命名空间中,至于使用方法,在此就不多提了。

 

初识C++

标签:

原文地址:http://www.cnblogs.com/mr-jie/p/4637770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!