extern是一个关键字,告诉一个编译器,这个变量或者函数在当前文件找不到,也会在以后的文件或者其他文件存在
对于局部变量 如果想使局部变量在程序的整个生命周期里一直存在,可以定义局部变量为static 静态的 定义为局部静态变量 就是在函数范围类使用。
内部连接和外部连接 内部连接意味着只为正在编译的文件创建存储空间
const 编译器会说 “这是不会改变的”
struct 是把一组变量组合成一个构造
friend 在一个类中指明其他的类或者函数能够直接访问该类中的private和protected成员
函数在运行的时候被导入到内存中,所以函数也存在地址,指针也可以像指向变量一样指向函数,存在函数指针 void(*func)(); 为什么(*func)要加括号,因为编译器可能会认为是 void * func(); 返回void *的函数
指向函数的指针数组,为了选择一个函数,只需要使用数组的下标,然后间接引用这个指针。
#ifdef 发送给编译器的代码 #endif
##标志粘贴 #define function(A) A##_string 等价于 A_string
static使用的基本概念是 “位置不变的一个东西”,不管是之内村中的物理位置,还是在文件中的可见性
没有为内建类型的static变量赋值,编译器会自动赋值为零
用户自定义类型必须用构造函数来初始化,如果在定义一个静态对象的时候没有指定构造函数参数,这个类必须有默认的构造函数
虚函数 为了引起晚捆绑,c++要求在基类中声明这个函数时使用virtual关键字。
连接只引用那些在连接/装载期间有地址的成员,因此类声明和局部变量并不连接。
静态成员函数为类的全体对象服务,而不是类的摸个特殊对象服务
一个静态成员函数的产生,也就是与一个类的特殊关系的产生,可以用普通的调用方法,类的对象用. ->,调用静态成员函数 。调用静态成员函数的典型用法是自我调用,就是用类的作用域 A::function();
静态成员函数只能访问静态成员函数,或者静态成员函数,不能访问普通成员函数,因为相对于普通成员函数,都是从类中拷贝,隐式的有this
把嵌入的对象私有,他们将成为内部实现的一部分,新类的公有接口函数包含了对嵌入对象的使用
为了实现虚函数,编译器会对每个包含虚函数的类创建一个虚函数表
抽象基类 常常希望基类仅仅作为派生类的一个接口,使用他的借口,而不希望用户实际的创建一个基类对象。
virtual function() = 0;
深拷贝和浅拷贝的区别就是在对象的状态中包含其他对象的引用的时候,当拷贝一个对象的时候,如果需要拷贝这个对象引用的对象,则是深拷贝,否则是浅拷贝。
对于局部变量 如果想使局部变量在程序的整个生命周期里一直存在,可以定义局部变量为static 静态的 定义为局部静态变量 就是在函数范围类使用。
内部连接和外部连接 内部连接意味着只为正在编译的文件创建存储空间
const 编译器会说 “这是不会改变的”
struct 是把一组变量组合成一个构造
friend 在一个类中指明其他的类或者函数能够直接访问该类中的private和protected成员
函数在运行的时候被导入到内存中,所以函数也存在地址,指针也可以像指向变量一样指向函数,存在函数指针 void(*func)(); 为什么(*func)要加括号,因为编译器可能会认为是 void * func(); 返回void *的函数
指向函数的指针数组,为了选择一个函数,只需要使用数组的下标,然后间接引用这个指针。
#ifdef 发送给编译器的代码 #endif
##标志粘贴 #define function(A) A##_string 等价于 A_string
static使用的基本概念是 “位置不变的一个东西”,不管是之内村中的物理位置,还是在文件中的可见性
没有为内建类型的static变量赋值,编译器会自动赋值为零
用户自定义类型必须用构造函数来初始化,如果在定义一个静态对象的时候没有指定构造函数参数,这个类必须有默认的构造函数
虚函数 为了引起晚捆绑,c++要求在基类中声明这个函数时使用virtual关键字。
连接只引用那些在连接/装载期间有地址的成员,因此类声明和局部变量并不连接。
静态成员函数为类的全体对象服务,而不是类的摸个特殊对象服务
一个静态成员函数的产生,也就是与一个类的特殊关系的产生,可以用普通的调用方法,类的对象用. ->,调用静态成员函数 。调用静态成员函数的典型用法是自我调用,就是用类的作用域 A::function();
静态成员函数只能访问静态成员函数,或者静态成员函数,不能访问普通成员函数,因为相对于普通成员函数,都是从类中拷贝,隐式的有this
把嵌入的对象私有,他们将成为内部实现的一部分,新类的公有接口函数包含了对嵌入对象的使用
为了实现虚函数,编译器会对每个包含虚函数的类创建一个虚函数表
抽象基类 常常希望基类仅仅作为派生类的一个接口,使用他的借口,而不希望用户实际的创建一个基类对象。
virtual function() = 0;
深拷贝和浅拷贝的区别就是在对象的状态中包含其他对象的引用的时候,当拷贝一个对象的时候,如果需要拷贝这个对象引用的对象,则是深拷贝,否则是浅拷贝。