首先要说明的类成员之一——构造函数,构造函数的作用是初始化类成员。,构造函数时特殊的成员函数,与其他的成员函数不同,构造函数和类同名,而且没有返回类型,与其他成员函数相同的是,构造函数也有形参表(可能为空)和函数体。一个类可以有多个构造函数,每个构造函数必须由于其他构造函数不同数目或类型的形参。下面举一个例子说明:
//首先定义一个类
struct hanrui
{
public://可以不写,因为struct默认为public
int test;//定义一个test
string name;
};
我们看到我们 名为hanrui 的类中包含有test 和 name 两个数据,那么如果要对其进行初始化,则可以
struct hanrui
{
public://可以不写,因为struct默认为public
int test;//定义一个test
string name;
hanrui()
{
test=1;
name=“hanrui”;
}
};
最后输出观察结果
因此,构造函数可以简单的理解为初始化类成员。
第二个知识点是函数的指针,指针可以理解为存放数据的地址,如果将一个数据比作房客,那么指针就是房间的门牌号,通过这个门牌号可以访问住的客人,也就是指针=地址。对于一般的数据类型,也就是对于普通人的房客,我们采用一般的服务,也就是只 说明需要说明指针的类型,指针的名称,一些基本的定义即可。
以下是指针的定义
vector<int> *pvec; //pvec 能够指向vector<int>
int *p1 //p1能够指向整数
double *dp //dp能够指向double类型数据
以前的文章有提到迭代器的概念,那么指针其实就是数组的迭代器;
以上是针对一般顾客的情况,那么可以将函数理解为VIP顾客,对于VIP来说,除了要有享有一般顾客的权力外,还要享受特权。因此VIP房客的房间号会有所不同,所以除了基本的类型名称外,还要有括号等,以下是一个函数指针的定义
int (*hanrui)(int a,double b)
//以上定义一个名字为hanrui的函数指针,该指针类型为“指向返回int 类型并带有int ,double形参的函数指针”
一定要注意括号的位置,千万不要写错
通常为了方便,可以使用关键字 typedef,因此以上定义可以这样写
typedef int (*hanrui)(int a, double b);
//之后在定义可以 hanrui a;就定义了该类型的指针,不必每次都把整个类型声明全部写出来
以下为应用函数指针的例子
void test(int a)
{
cout << "this is a pointer test" <<a<< endl;
}
int main()
{
int a = 1;
void(*z)(int a);
z = test;
z(1);
}
输出结果
以上为两个简单的知识点