#ifndef A_H // 如果不存在A.h
#define A_H // 就引入 A.h
...//Here is code.
#endif // 否则不需要引入
效果类似.
包含pragma once语句的文件只会被编译一次。
表示在编译的时候, 这个文件只被包含(include)一次,这样, 可以减少整个编译过程中打开这个文件的次数.
1. 宏定义/ typedef替换数据类型
//定义类型别名,char*别名PCHAR
typedef char* PCHAR;
2.文件操作 / iostream,fstream,sstream
注意
: 文件和可执行程序在一个文件夹里可以直接写文件名,否则要指定路径
-
iostream类: 负责与
控制台
输入输出打交道。 具体又可以区分为:istream和ostream(i读o写
) -
fstream类: 负责与
文件
输入输出打交道。 具体又可以区分为:ifstream和ofstream (fstream参数表) -
stringstream类:负责与
string
上的输入输出打交道。具体又可以区分为:istringstream和ostringstream
fstream,sstream用法
ofstream和ifstream详细用法
getline用法 , 注意跟cin.getline()区分
函数声明
bool getline(istream &in, string &s)
功能说明:
从输入流读入一行到变量string s,及时是空格也可以读入。
–直到出现以下情况为止:
•读入了文件结束标志
•读到一个新行(有重载函数可以指定行分隔符,默认是"\n".)
•达到字符串的最大长度
–如果getline没有读入字符,将返回false,可用于判断文件是否结束.
3.使用多线程
要在CMakeLists.txt中加入
TARGET_LINK_LIBRARIES(your_executable pthread)
2. c++的override关键字
我那个编译器里把override标蓝(表示那是系统关键字),它有什么用?
我知道【英语单词】override表示子类覆盖掉父类的方法,调用时会调用子类的方法;父类对应的方法已经用virtual修饰。我问的是override作为c++【关键字】的用处。
描述:override保留字表示当前函数重写了基类的虚函数。
目的:1.在函数比较多的情况下可以提示读者某个函数重写了基类虚函数(表示这个虚函数是从基类继承,不是派生类自己定义的);2.强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。
用法:在类的成员函数参数列表后面添加该关键字既可。
例子:
class Base {
virtual void f();
};
class Derived : public Base {
void f() override; // 表示派生类重写基类虚函数f
void F() override;//错误:函数F没有重写基类任何虚函数
};
注意:override只是C++保留字,不是关键字,这意味着只有在正确的使用位置,oerride才启“关键字”的作用,其他地方可以作为标志符(如:int override;是合法的)。
相关:override还有一个姊妹保留字final。
VC++编译器支持情况: VS2008,VS2010,VS2012,VS2013,+