c++学习笔记 类

1. c++对结构进行了扩展,使之具有与类相同的特性。结构的默认访问类型是public,而类的private

2. 一般来说类成员的声明和定义要放在不同的文件中,体现c++的封装特性

3. 类成员函数调用同一段代码,可以把此段代码作为private成员,减少代码的重写过程,此处可以将相关的代码段函数定义为内联函数。内联定义可以紧跟着类的声明。

4. 类的对象有各自的存储空间,各个类使用的方法则只有一个副本

5. 声明了有参构造函数,则一定要声明默认构造函数。默认构造函数可以没有参数,但是如果有参数,则应该包含所有的参数

6. 列表初始化语法可以用作类

7. const成员函数的定义 void show()const;

8. 初始化对象数组的方案:首先使用默认构造函数创建数据元素,然后花括号中的构造函数将创建临时对象,然后将临时对象的内容复制到相应的元素中。因此,要创建对象数组,类必须有默认构造函数。

9. 构造函数使用explicit来修饰,无法进行隐式转化,只能进行显示转化。

10. strlen()返回字符串的长度,但不包括后面的空字符。

11. 类会自动定义的函数(如果类中没有定义):

    默认构造函数 默认析构函数 复制构造函数  赋值构造函数 地址运算符(this指针相关)

12. 复制构造函数的参数:指向类对象的常量引用

13. 复制构造函数中的指针复制时,需要进行深度复制,首先创建新的空间,然后进行复制。类中有new初始化的指针成员,应当定义一个复制构造函数进行深度复制

14. 赋值构造函数也存在指针的浅赋值的问题,同样进行赋值运算符“=”的重载。类的运算符重载一般都要返回“*this”,这样便于  运算符的连续使用

15. 成员函数为静态时(1)不能通过对象调用静态成员函数,实际上,静态成员函数甚至不能使用this指针。如果静态成员函数是在公有部分声明的,则可以使用类名和作用域解析运算符来调用它。如:string::howmany();其中howmany是类string的公有静态成员函数。(2)静态成员函数只能使用静态数据成员

16. 类外只能通过公有成员函数访问protected成员,派生类的成员可以直接访问基类的protected成员;对于外部世界来说,保护成员的行为与私有成员相似,对于派生类来说,保护成员的行为与公有成员相似。

猜你喜欢

转载自blog.csdn.net/qq_28734159/article/details/83043196