1 声明(declaration)和定义(definition)
声明时向编译器介绍名字-标识符,它告诉编译器这个变量或者函数在某处可以找到,它的模样是是什么。
定义是说:在这里建立变量或者函数。并且分配存储空间。变量在内存分配空间保存数据,函数,编译器也要产生代码,占用空间。
声明可以说次,定义只能一次(ODR:one-definition rule);
1.1函数声明和定义
int add(int a,int b);//注意带分号
或者int add(int,int);
函数定义带函数体
int add(int a,int b)
{
return a+b;
}
1.2 变量声明和定义
extern int a;//这句话的意思是,a 是一个int,现在没有定义,但是你(编译器)总可以在一个地方找到
变量定义:
int a;//此时对变量分配a 4字节存储空间,只能在程序中出现一次(作用域内)
2 头文件和预处理器指令
头文件是库德创建者提供,里面包括函数和变量的声明;
#include <iostream.h> //老式 ,非模板化版本
#include <iostream>//新式,模板化版本,从编译器指定的路径寻找
#include "gVar.h" 从当前目录开始寻找
标准C++格式是:
#include <cstdio> //对应的C老库 #include<stdio.h>
#include<cstdlib> //对应的C老库 #include<stdlib.h>
一般自己定义的头文件格式
#ifndef MY_DATADTRUCTURE
#define MY_DATADTRUCTURE
......
#endif
3 C++中如何定义全局变量和全局函数,全局类
3.1 首先定义自己的头文件,比如"gVar.h",内部如下:
#include "stdafx.h" //MFC
#ifndef MY_DATADTRUCTURE
#define MY_DATADTRUCTURE
extern int global_int;//变量声明
int add(int a,int b);//函数声明
Class 或者struct 定义//特殊情况
class Person{
Person()
{
_name=_T("");
_age=0;
}
Person(Cstring name,int age)
{
_name=name;
_age=age;
}
private:
Cstring_name;
int _age;
}
extern Person myPerson;
#endif
3.2 建立"gVar.cpp"
#include "gVar.h"
global_int=0;//函数定义
int Add( int a,int b)//函数定义
{
retrun a+b;
}
Person myPerson;//注意如何带参数构造函数提示错误