首先,感谢邓总告诉了我C++ 11的存在。一直以来,从来没有关心过C++的标准,以为C++一直以来没有变化;一直以来,从来没有关注过时代的变迁,以为大家口中技术的进步与我毫无关系;一直以来,潜心于各种技术的学习,从来没有看过最新的资料。猛然间,觉得自己走的路有点偏离主线了,原来时代已经发生了翻天覆地的变化。还好C++ 11刚颁布两年,GCC和CLANG也全部支持新特性不久,一切还是来得及的。
起航第一步,必然要有“船”,指望微软的VS必然不太现实,目前最新的VS2013好像也不是完全支持C++ 11的标准。那就只有靠我们的老朋友GCC以及新朋友CLANG了。
一. Windows下GCC环境搭建
1. IDE软件 - Code::Blocks
下载地址:http://sourceforge.net/projects/codeblocks/
一路Next,安装完毕,并运行,第一次运行会弹出以下对话框,进行各种编译器的设置,可以先无视,直接点OK。
OK后就进入主界面了,贴个图:
2. 安装编译器 - MinGW/CYGWIN
由于CYGWIN比较大,安装时间比较长,所以这里选择使用了MinGW,有兴趣的可以安装一下别的。
下载地址:http://sourceforge.net/projects/mingw/
下载后,执行安装文件,出现以下界面:
左边树上选择Basic即可,右边懒人模式,将所有的右键标记为安装,最后菜单栏->Istallation->Apply Changes,接下来就等待下载安装了。
安装完毕,测试一下,命令行进入bin目录,然后看一下G++的版本。
3. 设置编译器
再次回到Code::Blocks中,菜单栏 -> Settings -> Compiler。弹出编译器设置的对话框如下:
分别设置
1> Complier -> GNU GCC Compiler
2> Complier settings -> Compiler Flags -> Have g++ follow the C++11 ISO C++ language standard [-std=c++11]
3> Toolchain executables -> Compiler's installation directory -> MinGW安装路径
4> Toolchain executables -> Program Files -> 对应的文件分别选择
5> 如果没有设置为Default,则点击Set as default
4. 进行测试
基本设置已经完成,接下来就来测试一下成果吧。没有什么比新建工程,写一段代码进行测试更有效了。
/**
* @file
* @brief C++ 11 Test
* @author FengMaNiu
* @date 2013/12/22
*/
#include <iostream>
using namespace std;
/**
* @class TestA
* @brief Test Construct and override/final.
*/
class TestA
{
public:
TestA(int pA, int pB, int pC) {
cout
<< "Construct: " << endl
<< "A: " << pA << endl
<< "B: " << pB << endl
<< "C: " << pC << endl;
}
virtual ~TestA() {}
virtual void FuncA() = 0;
virtual void FuncB() = 0;
};
/**
* @class TestB
* @brief Test Construct and override/final.
*/
class TestB
: public TestA
{
public:
TestB(int pA, int pB, int pC)
: TestA(pA, pB, pC) {}
void FuncA() final {
cout << "TestB FuncA" << endl;
}
void FuncB() override {
cout << "TestB FuncB" << endl;
}
};
/**
* @class TestC
* @brief Test Construct and override/final.
*/
class TestC
: public TestB
{
public:
TestC(int pA, int pB, int pC)
: TestB(pA, pB, pC) {}
/**
* @brief Unable.
*/
//void FuncA() {
// cout << "TestC FuncA" << endl;
//}
/**
* @brief Unable.
*/
//void FuncB(int pInt) override {
// cout << "TestC FuncB" << endl;
//}
};
int main()
{
TestA *test = new TestC{1, 2, 3};
delete test;
return 0;
}
编译,执行,弹出黑框,一切OK,哈哈~~~
二. Windows下CLANG环境搭建
这个本地还没进行实践,后期再来补吧,嘿嘿嘿~~~