一、编译是指对一个工程下面所有项目进行编译;而Debug是对工程下的某个项目进行编译(如果要指定对某个项目进行编译,则需要将该项目设成“设为启动项目”)。
二、关于在编译一个程序的过程中遇到的一个问题:
错误如下:
1>------ 已启动清理: 项目: Chess, 配置: Debug Win32 ------
1>正在删除项目“Chess”(配置“Debug|Win32”)的中间文件和输出文件
1>Chess : error PRJ0008 : 未能删除文件“g:\Workspace\Exercise\Game\Chess0.3\Debug\Chess.exe”。
1>请确保该文件未被其他进程打开并且未被写保护。
1>Chess - 1 个错误,0 个警告
========== 清理: 成功 0 个,失败 1 个,跳过 0 个 ==========
对于此我的解决办法是Ctrl+Shift+Esc打开任务管理器的进程,关闭未能删除所有的*.exe(上面的错误指的就是Chess.exe)的进程即可。
三、对于调用结构体中的成员变量时,如果是指针则是用->,不是指针则使用.。如果是对个迭代器解引用之后再访问成员变量,则应该先把解引用的操作用()括起来,即(*iter).x。
四、关于使用类中的成员函数的问题。如果在一个类中的成员函数想调用这个类中的另外一个成员函数则使用this指针代表当前的这个类!!!
五、关于对非静态成员函数的非法引用问题:
①静态成员函数相当于全局函数,只是有一个类名字空间的限制。
②类成员函数是成员内部的函数,同一个类的对象实例可以有很多,每一个实例都有自已不同的成员变量值,成员函数一般都是对成员自已的成员变量值在操作,所以调用成员函数,必须明确是对哪一个对象实例的操作。
③静态成员函数调用的成员变量值都必须是静态的,等同全局的变量。一个类不同的对象实例的静态变量是同一个变量,所以静态成员函数的调用可以全局调用,而无须指明是对哪一个对象操作。
④静态成员(类中用static声明)用类名::成员名的方式访问,非静态成员必须通过类对象来访问。
名空间中的函数和类只能一个一个导出。