慕课学习C++笔记02-封装(上)
来源:互联网 发布:有个腿长的女朋友知乎 编辑:程序博客网 时间:2024/05/01 02:58
http://www.imooc.com/learn/382
问:如何判断字符串name,输入为回车键?
答:使用getline()来
getline(cin,name); if(name.empty()){ cout<<"输入为空"<<endl; return 0; }
问:C++中类的成员变量默认是私有还是共有?
答:sturct默认是公有的,class默认是私有的。
问:如何设置一个类的成员变量name为只读?
答:把该成员变量name设置为private,使用public的getName()方法,不写setName()方法就可以了。
问:类内定义与内联函数关系?类外定义?
答:编译器会自动将类内定义的函数优先为内联函数inline, 书写时不需要加inline。
类外定义,类内声明,类外void Student::getName(){ //函数体}。
分文件类外定义,在头文件里Student.h里声明类,在Student.cpp里添#include“Student.h”(""是搜索所有目录,<>是搜索当前目录),接着写void Student::getName(){ //函数体}。
问:内存分区?
答:栈区:内存由系统分配,无论是分配还是回收,都不需要程序员关心;
堆区:内存需要程序员关心管理的。
问:构造函数?
答:为了避免程序员忘记初始化或是重复初始化,引入了构造函数,它是在对象实例化被自动调用,被调用且只有一次。构造函数与类名同名,没有返回(连void都不用),可以重载。
问:初始化列表特性?
答:初始化列表先与构造函数体内执行;初始化列表只能用在构造函数;初始化列表可以同时初始化多个成员变量。
构造函数执行分为两个步骤:初始化阶段(所有类类型的成员变量都会在初始化阶段初始化),计算阶段(执行构造函数体内的赋值操作)。
使用初始化列表主要基于性能问题,少了一次调用默认构造函数的过程,对于数据密集型的类来说非常高效。
http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html
以下情况必须使用初始化列表:常量成员,因为常量只能初始化不能赋值;引用类型,引用必须在定义的时候初始化,并且不能修改引用的对象(不是不能赋值,而是不能修改
引用的对象,比如这里x是y的引用,就一直是y的引用不会变化,对引用赋值就是对它引用的对象赋值,比如这里x=7和y=7是一个意思。);没有默认构造函数的类类型,因为使
用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化。
问:拷贝构造函数?
答:拷贝构造函数:Student(const Student &stu{...}
拷贝构造函数的参数是确定的,不能重载 。
如果没有自定义的拷贝构造函数,系统会自动生成一个默认的拷贝函数;当采用直接初始化或是复制初始化实例对象时,系统自动给调用拷贝构造函数。
问:析构函数?
答:对象销毁时会自动调用,回收资源,收拾最后残局。
格式:~类名(){...}
没有返回值,没有参数,不能重载
问:对象的生命历程?
答:
- 慕课学习C++笔记02-封装(上)
- 学习笔记 C++ 封装(上)
- 慕课学习C++笔记02-封装(下)
- c++学习笔记之封装篇(上)
- c++学习笔记之封装篇(上)
- 精通C#:Chapter5 封装-学习笔记
- C++笔记_封装篇(上)
- 《C++ 封装篇(上) imooc》笔记
- MFC学习笔记(2)——Windows程序的类封装 上
- 极客班 C++(上)第二周学习笔记
- C++基础学习笔记----第八课(类的封装)
- C/C++学习笔记(八)封装性、继承性、多态性
- Objective-C学习笔记(二十三)——面向对象之封装
- OBJ-C匿名对象和封装学习笔记
- 《C陷阱与缺陷》学习笔记(上)
- 学习笔记 C++ 封装(下)
- 学习笔记:CString封装
- JAVA学习笔记--封装
- 在 WinCe 平台读写 ini 文件
- Word Loadder II (***) -- BFS DFS
- QT---设置textedit文本框中某个字符格式
- QT---qtextedit中的光标问题
- python 之 推导式
- 慕课学习C++笔记02-封装(上)
- 3-06. 表达式转换(25)
- 几道python笔试题
- leetcode 258 Add Digits(难易度:Easy)
- Java IO流->处理流->打印流:PrintStream&PrintWriter
- Python yield 使用浅析
- Java多线程 -- 有返回值的线程
- Android Camera
- JVM调优总结 -Xms -Xmx -Xmn -Xss