摘要:
我的这个朋友把这篇文章取名叫Build Your ProgrammingTechnicalSkills,我实在不知道用中文怎么翻译,但我在写的过程中,我觉得这很像一个打网游做任务升级的一个过程,所以取名叫“技术练级攻略”,题目有点大,呵呵,这个标题纯粹是为了好玩。这里仅仅是在分享Mailper和我个人的学习经历。(注:省去了我作为一个初学者曾经学习过的一些技术(今天明显过时了),如:Delphi/Power builder,也省去了我学过的一些我觉得没意思的技术Lotus Notes/ActiveX/COM/ADO/ATL/.NET ……) 前言 你是否觉得自己从学校毕业的时候只做过小玩具.. 阅读全文
摘要:
醋坛酸味灌,味落跳福逗醋, 初等:4个,(), [], ->, .;坛, 单目, 9个, !, ~, ++, --, -(负号), +, *, &, sizeof酸, 算术, 5个, *, /, %, +, -味, 位移, 2个, <<, >>灌, 关系, 6个, <, >, <=, >=, ==, !=味, 位运算, 3个,&, |, ^(按位异或)落, 逻辑, 2个, &&, ||跳, 条件, 1个, ?:(三目, 自右向左)福, 赋值, 11个,=, +=, -=, *=, /=, %=, >&g 阅读全文
摘要:
简介 名称的英文全称为:Standard Application Framework Extensions 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在projec... 阅读全文
摘要:
在使用std::list的过程中, 编译器报warning 如下:warning C4786: 'std::reverse_bidirectional_iterator<std::list<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > 阅读全文
摘要:
char *screenInit(int height, int width, char background = ' ');char *screenInit(int height = 4, int width = 4, char background);正确;char *screenInit(int height, int width, char background = ' ');char *screenInit(int height = 4, int width = 4, char background = ' ');//redefinit 阅读全文
摘要:
int a[][];错误,多维数组的规则是 只有最后一维的大小能省略, 可以定义为int a[][5];int (*pa)[];不好,应该int (*pa)[size];声明可以, 但是赋值的时候就会有错误,例如:int a[] = {1, 2, 3};pa = &a;//cannot convert parameter 1 from 'int (*)[3]' to 'int (*)[]'所以定义指向数组的指针的时候最好把数组的大小确定; 阅读全文
摘要:
const 引用:1. int i = 20; const int& refer = i; i = 12;可以, refer的值会变, 但是不能给refer赋值2 int i = 20; int* &rval = &i;错误, a refrence is not to const cannot be bound to a non-lvalue 因为&i不是一个左值, 所以ral必须声明为const型的 int* const &rval = &i;数组的引用: int ia[10]; int (&iaref)[10] = ia;这样就得到了 阅读全文
摘要:
指向数组的指针:int(*p)[5];定义了一个指向数组元素为int型的元素个数为5的一维数组;也可以理解为二维数组的首元素就像int*p指向int型可以理解为一维数组的首元素;也可以理解为*p为一个指针,指针里面的内容是一个有5个int值的数组;*p=a[5];其中,"类型说明符"为所指数组的数据类型。"*"表示其后的变量是指针类型。"长度"表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。注意,"*(指针变量名)"两边的括号不可少,如缺少括号则表示的是指针数组。p指向二维数组的第一个元素a 阅读全文
摘要:
在下面的代码中a1调用const版本,a2调用非const版本。 const a a1;
a a2;
a1.x();
a2.x(); 后面加const表示在该函数中不能对类的数据成员进行改变,比如: class A
{
private: int aa;
public: int x()
{ return aa++;
} //这可以
int x() const
{
return aa++;//这错误
}
};
当然有特殊情况,就是用mutable关键字修饰过的成员变量可以在声明为const 函数中被改变。
关于mutable: 关键字mutable是C++中一个不常用的关键字,他只能... 阅读全文
摘要:
心结:为了在codeblocks下创建的C++工程中使用mysql,辛辛苦苦忙活了半个下午,终于长舒一口气,搞定了,编译成功。其中不乏数次的成功于失败的反复。个中滋味,只有让我有擂头顿足的冲动。不过,还算上天公平,问题终究还是解决了。趁着刻骨铭心的痛苦还没有消失殆尽,赶快把过程记录于此。权慰数小时之功,且备来时之用。-----------------------------------------------------记录:为使用mysql配置codeblocks下C++工程:goto project -> build optionsa. compiler settings tab - 阅读全文