简单来说,c里面的结构(struct)只是把各种不同的数据类型结合在一起,变成一种程序员自定义的数据类型。
结构是完全开放的,任意一个函数,只要能访问到这个结构,就可以随意操纵其中的数据。
而类(class)除了是将不同的数据类型以私有的形式(private)组合在一起之外,还提供了访问这些数据的方法(即类函数)。
用户只能用类提供的接口(类函数)来访问并操纵类中的数据。
这样,就使类具备了封装的功能,有效地保护了数据。
同时,类还有构造和析构、继承和多态等多种优点。这些优势,使得C++的应用越来越广泛。
在gcc下可以使用关键字 __attribute__指定构造函数。
这些构造函数由编译器处理,在执行main函数之前,就会执行。
__attribute__使用方法(function 就是要声明的构造函数):
void __attribute__((constructor))
例如:
- #include<</span>stdio.h>、
-
- void
__attribute__((constructor)) test(void){ -
printf("This is the construtor function: test\n"); - }
-
- int
main(){ -
printf("this is the main function!\n"); -
return 0; - }
输出结果:
可以看到,在main函数执行之前,就先执行了构造函数test。