1. 命名空间
namespace My
{
int num;
void add(int);
}
My::num = My::add(10);
namespace You
{
int num;
void add(int);
}
using namespace You;
num = add(10);
2. new delete
int *p;
p = new int(10);
delete p;
int *q;
q = new int[20+1];
delete [] q;
3. 内联函数inline 类似宏替换
4. 常量const
const float PI = 3.14;
void fun(const int num)
//num只能使用不能进行修改
void asgn(char *to, const char *from)
{
while (*to++ = *from++);
}
//指向常量的指针,不能修改
5. 缺省参数
缺省参数,缺省参数写在最右边
要么都缺省,要么都不缺省
要么都缺省,要么都不缺省
void fun(int a, int num = 1, int f = 1){}
6. 引用参数reference
void fun(int *p)
{
*p = 100;
}
int main()
{
int a = 10;
fun(&a); //传地址 int *p = &a;
cout << a; //a=100
return 0;
}
void fun(int &p) //reference
{
p = 100;
}
int main()
{
int a = 10;
fun(a); //传值 int &p = a;
cout << a; //a=100
return 0;
}
int &getvar(int *p)
{
return *p;
}
int main()
{
int a = 10;
getvar(&a) = 200;
cout << a; //a=200
return 0;
}
7. 类型转换的函数表示法
int(1+1)
8. C++独有数据类型 bool
9. C++独有语句 try
10. 抽象数据类型
struct 缺省段约束符为public
struct Date //Date被称为类类型
{
int day, month, year;
void init_date(int, int, int); //成员函数
Date add_day(int n); //成员函数
};
void Date::init_date(int y, int m, int d)
{
//!!!!!!!!
day = d;
month = m;
year = y;
}
Date my_birthday;
void set_day()
{
Date today;
today.init_date(2012, 2, 7);
my_birthday.init_date(1990, 1, 1);
Date tomorrow = today;
tomorrow.add_day(1);
}
更一般的形式class 限制定义的数据访问 class 段约束符缺省为private
class Date
{
private: //只能被成员函数访问
int day, month, year;
public: //构成对象访问接口
void init_date(int, int, int);
Date add_day(int n);
};
/*error*/ tomorrow.day++;
//day属于私有段 类外不可见
class circle
{
int x, y;
//int x = 0, y = 0; //错误 数据