一些C++内容的总结(2013.10.17)

1.using namespace std;使用的是C++标准库当中的一些变量,比如cout,cin等。
但是using namespace std作用域只对当前文件内作用,所以using namespace std一般不会包含在stdafx.h预编译头当中,而是分别包含在.h文件当中或者需要使用的.cpp文件当中
和#include 的对比,#include相当于将所include的文件在编译的时候,包含到所include的位置,其实际使用的是include文件当中的声明或者定义。
而using namespace 不同,这样使用的是namespace  XX当中的一些类,函数或者其他
2.stdafx.h与编译头,说来话长,在VS工具当中,是可以指定stdafx.h的这个名字的,它可以是stdbfx.h的,不区分大小写。
一个工程的其他.h文件的include都统一会包含到stdafx.h当中来,不写到stdafx.cpp当中。
有了这个预编译头之后,在其他的源文件当中,只需要include“stdafx.h”即可,但是必须放在第一行,否则会编译报错。为什么?
3.#include 和class声明的区别:include会将所包含的文件直接在文件的位置展开,这样类当中的所有函数,定义都可以使用。但是展开代码相互关联,比较复杂,会导致编译变慢。
而class直接声明呢,在不需要访问类的定义,函数等情况下,仅仅声明一个类就足够了,说明有这种类型存在,满足能让程序编译过去的目的就够了,展开规模不大,而且编译能加快。
这两种要根据实际情况选用。使用class作为声明,目前没有太强的感受。
4.  4.include 和pragma once
  #ifndef XXX_H
  #define XXX_H

  #endif区别
  直接使用pragma once 指该文件在编译过程中仅仅被包含一次
  #ifndef实现的是同样的功能,但是如果出现宏定义重复就操蛋了,所以使用pragma once一次性解决,具体区别,再叙!

原文地址:https://www.cnblogs.com/poemCoder/p/3375306.html