第一个C++程序HelloWorld(Visual Studio 2017)

在VS2017中新建一个C++项目:

文件->新建->项目->Visual C++->Windows桌面->Windows控制台应用程序->名称和位置->确定。


"stdafx.h"头文件全称“StandardApplication Framework Extensions”,指的是标准程序框架的扩展。

以下摘自百度百科:

预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch

编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include"stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。

因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。在它前面的所有代码将被忽略,所以其他的头文件应该在这一行后面被包含。否则,你将会得到“No such file or directory”这样让你百思不得其解的错误提示。

程序代码:

//HelloWorld.cpp: 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <iostream>
//using namespace std;
using std::cin;
using std::cout;

usingstd::endl;
int main()
{
      cout << "HelloWorld!" << endl;

  return 0;

}

以下转自知乎文章《为什么尽量不要使用using namespace std?》
作者:知乎用户
链接:https://www.zhihu.com/question/26911239/answer/51503880
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

《C++ Primer Plus (第六版 中文版 人民邮电出版社)》第九章:内存模型和名称空间 第328页:
"有关using编译命令和using声明,需要记住的一点是,他们增加了名称冲突的可能性。"

《C++ Primer Plus (第六版中文版 人民邮电出版社)》第九章:内存模型和名称空间 第329页:

一般说来,使用using命令比使用using编译命令更安全,这是由于它只导入了制定的名称。如果该名称与局部名称发生冲突,编译器将发出指示。using编译命令导入所有的名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。
...
然而名称空间的支持者希望有更多的选择,既可以使用解析运算符面也可以使用using声明,也就是说,不要这样做:

using namespace std; // avoid as too indiscriminate(随意)

而应这样做

int x;

std::cin >> x ;

std::cout << x << std::endl;

或者这样做

using std::cin;

using std::cout;

using std::endl;

int x;

cin >> x;

cout << x << endl;

 【补充】:在之后的学习中,出现了无法找到swap函数的问题(另一个程序),尝试多种方法无效(包括库文件、大小写等),后将using std::cin;

using std::cout;

using std::endl;

注释掉,并换为using namespace std后,可正常运行,具体原因未知,欢迎知晓原因的解惑...


按Ctrl+F5,运行结果如下:

 

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读