51CTO学院 c++视频

  1. 只要在声明或函数体前面中的一个地方加上inline就可以成为内联函数。 内联函数的声明和定义必须在同一个文件中。推荐都加inline,这样更清晰

  2. inline 只是建议c++编译器将函数设为内联函数,但没有决定权。当函数里有循环语句,复杂的条件语句,递归等,则c++编译器无视inline关键字

  3. #include<> 和 #include" " 只是搜索顺序不一样,前者先搜索系统中的头文件,后者先搜索本地程序的头文件。

  4. 函数重载 函数名一样,函数的形参列表不一样 ,与函数的返回值无关 编译举例:Swap_int*_int*; Swap_int&_int&; 所以不会造成函数编译冲突,与c语言不同。

  5. 函数的默认参数顺序,必须从右往左添加

  6. 数组不能引用,如果参数大于7个,建议使用结构体引用地址。

  7. tyoedef struct xx {}yy; yy person;
    srtuct xx {}; struct xx person;

  8. 在类外,类的对象只能访问该类的public区域的成员(成员变量和成员函数)

  9. 1.构造函数没有返回值 2. 构造函数名字与类名一样 3.构造函数可以有参数 4.构造函数可以重载,可以有多个

  10. 1、public:public表明该数据成员bai、成员函du数是对所有用户开放的,所有用户都可以zhi直接进行调用
    2、private:private表示私有dao,私有的意思就是除了class自己之外,任何人都不可以直接使用。
    3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

  11. biology t_biology1;
    biology t_biology2(“tree”,2000,300); //自动调用有参的构造函数

    biology::biology(const string &t_nam, int t_height , int t_weight)
    :m_name(t_name),m_height(t_height),m_weight(t_weight) //类成员初始化

  12. 引用必须初始化。

  13. 类的组合,先调用类成员变量的构造函数,再调用自己的构造函数

  14. 1.类的析构函数没有返回值。2.函数名为~food()。 3.析构函数没有参数。4.自定义析构函数只能有一个,不能重载。5.不管是否定义一个析构函数,c++编译器都会生成一个默认的析构函数。6.析构函数的调用顺序与构造函数调用的顺序相反。

  15. explicit 抑制一个参数构造函数的隐式转换。
    情况一
    explicit Car(int t_age);
    Car t_car1 =20; //此句编译不通过
    情况二
    getCarInfo(const Car t_car);
    getCarInfo(“xuefulan”); //发生了隐式转换

  16. //类的const成员函数。只能访问该类的成员变量,不能修改该类的成员变量。
    //类的const成员函数,不能调用该类的非const成员函数
    //在类外,const类对象和const类对象的引用只能调用该类的const成员函数(public区),不能调用该类的非const成员函数
    string getID() const
    {
    }

  17. 在函数里的类叫局部类。//不是很推荐这样使用
    void func1()
    {
    class Car:
    {
    //局部类,必须是内联函数。
    void print()
    {
    cout << " "<< endl;
    }
    }
    }

  18. 类声明
    class student;
    class stdent
    {
    }

  19. 友元
    1- class student
    {
    //把一个普通函数设置为student的友元函数
    friend void getStore(const student &t_student);
    }
    2- class student
    {
    //把一个类的某个成员函数设置为student的友元函数
    friend void Teacher::getStore(const student &t_student);
    }
    3- class student
    {
    //把一个类设置为student的友元类
    friend class count;
    }
    友元函数不是该类的成员函数

  20. 友元函数一般用作操作符重载。
    ostream& operator << (ostream &os,const student &t_student); //ostream &os 示例中实际就是cout
    cout << student1;

  21. 静态成员变量初始化地方,在对应的cpp中进行初始化 int student::m_number= 0;
    静态成员变量定义&静态成员函数的定义
    class student
    {
    static int m_number;
    static int getNumber()
    {
    m_name;//不能直接调用类的非静态成员(非静态成员变量和非静态成员函数)
    print();//
    getCount();//能直接调用类的静态成员(静态成员变量和静态成员函数)
    }
    static int getCount();
    }

调用类的静态成员的方法
student.m_number;
student::getNumber();

  1. 类的静态成员变量属于整个类,不属于类的任何一个对象,但同时又被该类的所有对象共享,静态成员函数没有this指针
  2. 局部类不能有静态成员变量,但可以有该类的静态成员函数
    void func
    {
    class student:
    {
    static ing m_number;//错误
    static int getScore();//可以有
    }
    }
  3. 共有继承下,
    可以将一个子类的对象赋值给父类的对象。
    可以用一个子类的对象去初始化一个父类的引用。
    可以用一个父类的指针指向一个子类的对象。

赋值兼容规则的作用:用于函数传参

  1. 只要有一个虚函数,该类就有且只有一张虚函数标
  2. vector::iterator t_iter1; //随机迭代器
    vector::const_iterator t_iter2; //const迭代器,只能读数据
    vector::reverse_iterator t_iter3; //反向迭代器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值