zoukankan      html  css  js  c++  java
  • C++Primer再学习(3)

    第12~14章,主要讲了类的创建的语法规则及应时刻注意的内容,复制构造,赋值操作符,析构函数,重载操作符的规则。
    高级主题中介绍了,类类型与其他类型的转换通过声明定义类型转换操作符
     
    38.类的设计者必须关心类是如何实现的,而使用类的程序员不需要知道类的实现细节。类的使用者只需要知道类提供的接口操作,而不关心类型如何工作。 即是:类的使用者面向接口编程,类的创建者面向实现编程
    39.在创建类的对象之前,必须要定义类,而不能仅声明类。另,类的前置声明一般用来编写有依赖关系的类。
    40.const成员函数只能返回一个*this的const引用 即 const T& T::Func(...) const
    41.如果函数在类外定义,则函数的返回类型在类的作用域外,当其类型为类内部定义的类型,就应使用完全限定名。
    42.名字查找-》先编译成员声明,再编译定义本身
    43.没有默认构造函数的类类型成员,const或引用类型的成员,必须在类的构造函数的初始化化列表中进行初始化,而不能在构造函数的函数体中赋值。
    44.可以用单个实参调用类的构造函数定义了从形参类型到该类类型的隐式转换。如果想禁用此隐式转换则需要在声明单形参构造函数前加入explicit。推荐使用此法,避免由隐式转换带来的错误
    45.类的static成员遵循正常的公有/私有/保护的访问规则,而static的成员函数不能被声明为const,也不能被声明为虚函数
    46.即使声明定义了类的析构函数,在这个析构函数被调用完成后,仍然会调用编译器生成的默认析构函数。
    47为类设计操作符的最好方法是,先为类定义公共接口,然后根据公共接口的行为改写为重载操作符
    48.对于可能作为容器元素的类类型,应重载==,<操作符,同时应定义!=, >, >=, <=
    49.=,[],(),->必须定义为类的成员操作符,自增,自减及解引用通常定义为类的成员。而其他对称的操作符(二元操作符的两个操作数都是该类类型的对象),最好定义为普通非成员
    50.为类类型重载输入操作符时,第二个参数应声明为类类型引用。且必须处理错误和文件结束的可能
    51.为类定义下标操作符[]时,需要定义两个版本。一个是非const成员返回非const引用,一个是const成员返回const引用
    52.前缀自增和自减操作符作为类成员时,具有0个形参,且返回类型的引用。而后缀自增和自减操作符作为类成员时,具有1个形参,且只能已值返回而非引用。
  • 相关阅读:
    Gitkraken使用教程
    request.getHeader中区分大小写参数
    MySql 中查询列表中添加序号
    解决windows 下mysql 表名自动转成小写的问题
    MYSQL服务无法启动,服务没有任何错误;解决方法
    idea中设置一键生成方法注释和类注释
    Windows10下安装MySQL8.0.21-64
    navicat连接mysql出现2059错误的解决方法
    解决tomca在eclipse中正常启动,在bin下启动闪退问题
    QT线程的结束
  • 原文地址:https://www.cnblogs.com/neking/p/2830526.html
Copyright © 2011-2022 走看看