1(1)C++中#ifdef 和#endif的作用:这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。
条件编译命令最常见的形式为:
#ifdef 标识符
程序段1
#else
程序段2
#endif
它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
其中#else部分也可以没有,即:
#ifdef
程序段1
#denif
#ifndef _aaa_
#define _aaa_
class aaa
{
};
#endif
就可以避免这样的问题。因为当你已经包含过这个文件,_aaa_就会有了定义,那么#ifndef的条件为假,就不会再执行后面的类定义了。
#ifdef和#endif必须成对使用,从理论上讲可以出现在任何地方(头文件和实现文件中),通常防止头文件被多次包含,在头文件中使用是必须的:
#ifndef <标识>
#define <标识>
......
#endif
<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h
#ifndef _STDIO_H_
#define _STDIO_H_
......
#endif
2、#pragma预处理指令:它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。
#pragma comment(...) 该指令将一个注释记录放入一个对象文件或可执行文件中。常用的lib关键字,可以帮我们连入一个库文件。如:#pragma comment(lib, "comctl32.lib")、#pragma comment(lib, "vfw32.lib")、#pragma comment(lib, "wsock32.lib")等,
如#pragma comment(lib, "Winmm.lib"):这条指令和你在工程中添加"winmm.lib"的功能一样,告诉编译器要导入winmm库。
使用#pragma region和#pragma endregion关键字,来定义可以扩展和收缩的代码区域的开头和结尾。这样就可以把这些代码行收缩为一行,以后要查看其细节时,可以再次扩展它。
3、#include <MMSystem.h>:windows中与多媒体有关的大多数接口;
#include <Windows.h>:这个头文件 一般来说,这是用标准的API来写程序的方法。windows.h里定义了关于创建窗口,消息循环等函数,如果要用API来做有界面的程序的话,必须要用到这个头文件;
4、C++的三种访问权限与三种继承方式 - 思维与睿智 - 博客频道 - CSDN.NET
http://blog.csdn.net/luoweifu/article/details/46953343
(1)C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。
访问权限 | public | protected | private |
---|---|---|---|
对本类 | 可见 | 可见 | 可见 |
对子类 | 可见 | 可见 | 不可见 |
对外部(调用方) | 可见 | 不可见 | 不可见 |
(2)C++中继承的方式还有多种,也分别都用public、protected、private表示。这与Java不一样,Java只有继承的概念,默认是public继承的。
a. 三种继承方式不影响子类对父类的访问权限,子类对父类只看父类的访问控制权;
b. 继承方式是为了控制子类(也称派生类)的调用方(也叫用户)对父类(也称基类)的访问权限。
c. public、protected、private三种继承方式,相当于把父类的public访问权限在子类中变成了对应的权限。 如protected继承,把父类中的 public成员在本类中变成了protected的访问控制权限;private继承,把父类的public成员和protected成员在本类中变成了private访问控制权。
5、struct和typedef struct彻底明白了 - bingo~ - 博客园
http://www.cnblogs.com/qyaizs/articles/2039101.html
结构体定义typedef struct用法详解和用法小结_紫心玲儿_新浪博客
http://blog.sina.com.cn/s/blog_4fdabc820100fsxu.html
6、C++抽象类 - 可笑痴狂 - 博客园
http://www.cnblogs.com/dongsheng/p/3343939.html
7、虚函数和纯虚函数的作用与区别 - xwpc702的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/xwpc702/article/details/8670025
8、C++中的类模板详细讲述 - Out Man - 博客园
http://www.cnblogs.com/assemble8086/archive/2011/10/02/2198308.html
C++中模板Template的使用_小雨_新浪博客
http://blog.sina.com.cn/s/blog_74a271040100tkmj.html
9、C++友元函数和友元类 - 大气象 - 博客园
http://www.cnblogs.com/greatverve/archive/2012/11/22/cpp-friend.html
10、函数返回值是否使用引用类型的问题:理解引用、返回值 - 迂者-贺利坚的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/sxhelijian/article/details/7466540
11、C++基本功之Operator - chinazjf的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/chinazjf/article/details/3321309
C++ operator关键字(重载操作符) - 简单--生活 - 博客园
http://www.cnblogs.com/xiangxiaodong/archive/2012/02/12/2348144.html
12、指针:
C指针的精髓
http://wenku.baidu.com/view/9a685c10647d27284a73511e.html?re=view
对C的指针的理解
http://blog.csdn.net/mikayong/article/details/7515358
科学网—[转载]别人对C中指针的理解 (数组指针,指针数组,函数指针,指针函数)
http://blog.sciencenet.cn/blog-441970-332256.html
C++指针详解
http://www.cnblogs.com/ggjucheng/archive/2011/12/13/2286391.html
C++中this指针用法详解
http://blog.chinaunix.net/uid-21411227-id-1826942.html
13、引用: