c++小结

&取地址运算符,修饰变量时为引用类型类似Java Reference
*取指针中的值
#include 预处理导入头文件
#define 在编译预处理时进行简单的替换,不作正确性检查
#typedef 编译时处理
 字符串可以用c中的<cstring>或者c++中的<string> ;strcpy(s1,s2)将s2值copy到s1,strcat(s1,s2)链接s1和s2;
static   静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。
extern 修饰的变量,可以在整个应用程序中访问
友元函数不是对象的属性,不需要用类名加::域修饰

    class 类名{
            //1、如果未声明构造函数,系统会自动生成一个无参数的构造函数,如果已经定义构造函数,则系统不生成默认构造
            //函数。
            //2、如果类内未定义拷贝构造函数,系统会自动生成一个拷贝构造函数。
            //3、每个类中都有一个this指针。
            //4、static 修饰的变量为静态变量,只初始化一次
        public:
        类名();//构造函数
        类名( const 类名 &obj);      // 拷贝构造函数
              ~类名();              // 析构函数

        修饰符:
         成员变量;
        成员函数;

        修饰符:
         成员变量;
        成员函数;

        };//必须有分号

        class  A :public  B:public C{
        //A类继承B类,又继承了C类,c++支持多继承
        //一个派生类继承了所有的基类方法,但下列情况除外:
        //    基类的构造函数、析构函数和拷贝构造函数。
        //    基类的重载运算符。
         //   基类的友元函数。

        }

//实现类方法
返回类型  类名::方法名(){}


c++中多态:被virtual修饰过的方法调用可以实现多态,没有被修饰时编译器看的是指针的类型,被virtual修饰是看的事指针的内容。
 纯虚函数,virtual int area() = 0; 语句中=0表示没有函数体

指向函数的指针

 int sum(int a,int b){

return a+b;

}

int (*fuc)(int ,int);

fuc=&sum;

(*fuc)(2,3);

声明方式:函数返回类型*函数指针变量)(参数列表);

调用格式:

*函数指针变量)(实参列表);

函数指针类型

前面介绍了函数指针变量的声明,那么函数指针类型如何声明呢?

在函数指针声明前面加个typedef就成了函数指针类型定义。
  1. typedef int (*FnType)(intint);   // 声明一个函数指针类型  
  2. FnType fb = &Sum;                   // 定义一个FnType类型的变量,并赋值  
  3. (*fb)(3, 5);     




posted @ 2017-06-22 16:44  清澈见底  阅读(99)  评论(0编辑  收藏  举报