1,代码头文件:example.h
#include<iostream>
using namespace std;
class Box
{
double length; // 长度
double breadth; // 宽度
double height; // 高度
public:
// 成员函数声明
double get(void);
void set( double len, double bre, double hei );
//当声明了非默认的构造函数之后默认的构造函数就不能用了;
//如果要用默认的构造函数则需要显示声明;
Box(double len, double bre, double hei);
Box();//显示声明默认的构造函数;
~Box();
};
2,代码源码: example.cc
#include "example.h"
// 成员函数定义
double Box::get(void)
{
return length * breadth * height;
}
void Box::set( double len, double bre, double hei)
{
length = len;
breadth = bre;
height = hei;
}
Box::Box(double len, double bre, double hei ){
length = len;
breadth = bre;
height = hei;
}
Box::Box(void){
cout << "BOX INITIALIZATION" << endl;
}
//如果cpp文件中定义了析构函数,那么头文件中也必须声明;
Box::~Box(void){
cout << "BOX destroy" << endl;
}
int main(){
Box box;
box.set(0.2, 0.3, 0.4);
cout << "box's area is " << box.get()<< endl;
Box box1(0.1, 0.2, 0.4);
cout << "box's area is " << box1.get()<< endl;
int a[5] = {5, 2, 6, 8 ,9} ;
for(int i = 0 ; i < 5; i++ ){
int tmp = a[i];
if (a[i] > a[i+1])
{
a[i] = a[i+1];
a[i+1] = tmp;
}
}
for(int i = 0 ; i < 5; i++ ){
cout << a[i]<<" ";
}
cout << endl;
}
3,一个简单的CMakeList.txt
cmake_minimum_required(VERSION 2.8.3)
project(example)
#==============
# executables =
#==============
add_executable(example src/example.cc;src/example.h)
#可执行文件的名称为 example;
# 如果CmakeLists.txt与源文件在一个文件下 则不用指定目录;
4,目录结构:

5、基本的语法规则
使用${}方式来取得变量中的值,而在IF语句中则直接使用变量名。
指令(参数1 参数2 …)
参数之间使用空格或者分号分隔开。如果加入一个函数fun.c
ADD_EXETABLE(hello main.c;fun.c)
指令是大小写无关的,参数和变量是大小写相关的。但是推荐你全部使用大写指令。
6、关于语法的困惑
可以使用双引号“”将源文件包含起来。处理特别难处理的名字比如fun c.c,则使用SET(SRC_LIST "fun c.c")可以防止报错。
7、清理工程
可以使用make clean清理makefile产生的中间的文件,但是,不能使用make distclean清除cmake产生的中间件。如果需要删除cmake的中间件,可以采用rm -rf *来删除中间件。
8、外部构建
mkdir build
cmake ..
make
在目录下建立一个build文件用来存储cmake产生的中间件,不过需要使用cmake ..来运行。其中外部编译,PROJECT_SOURCE_DIR仍然指代工程路径,即/backup/cmake/t1,而PROJECT_BINARY_DIR指代编译路径,即/backup/cmake/t1/build。
9、运行
找到可执行文件的目录:
./example
10,运行结果
BOX INITIALIZATION
box's area is 0.024
box's area is 0.008
2 5 6 8 9
BOX destroy
BOX destroy