C++学习(50)
来源:互联网 发布:淘宝电子洋垃圾 编辑:程序博客网 时间:2024/04/28 08:20
1. 程序开发过程:编辑、编译预处理、编译、连接、运行。
2. 比较 #include“file.h”VS. #include<file.h>
当用#include“file.h”时,先搜索当前工作目录,如果没有,再去搜索标准库,库没有再搜索资源库;
当用#include<file.h>时,编译器先从标准库开始搜索,如果没再搜索资源库目录,若还未找到则搜索当前工作目录。
题中的两种方式都会找到stdio.h(存在于标准库),通过<>,(库里)一步就找到了。
两者在程序的执行速度上一样,但是在编译速度上不同。
3. 友元能够通过类的对象访问类的所有成员。(正确)
(友元相当于在一个盒子上开了一个洞,既然一个盒子有洞,那么你就可以拿出这个箱子的任何东西。)
4. C++的虚函数必须是类的一个成员,而不允许是类的友元。
5. 调用拷贝构造函数的3情况:
1)、用一个对象去初始化同一个类的另一个新对象时;
2)、函数的形参对象,调用函数进行形参和实参结合;
3)、函数的返回值是类的对象,函数执行返回调用时 将一个对象赋值给另一个对象,两个对象都存在,调用的是赋值构造函数,不涉及内存的分配。 当被赋值的对象不存在调用的是拷贝构造函数;
6. 分析下列程序,则构造函数中,成员变量一定要通过初始化列表初始化的是:bc
class A{ ... private: int &a;};class B:public A{ ... private: int a; public: const int b; A c; static const char *d; A* e; };
分析一:需要初始化列表的三种:引用、const和没有默认构造函数的成员对象。
c需要初始化不是因为它的成员有引用,而是因为类A中没有合适的构造函数。
d,底层const,允许改变d的值,亦可不必初始化。
e,指向的东西是可变的,只要满足类A中要求即可。指针与引用的区别,定义一个引用时候必须要初始化,而且不能改变。定义一个指针时候,不用初始化,还可以更改指向。
const、引用在初始化列表中初始化。static在类外初始化。 普通变量可以在初始化列表也可以在构造函数里面赋值
分析二:常量成员和引用成员自然是要初始化的,问题就在这static成员。 static成员是不允许在类内初始化的,除了const,那么static const 成员是不是在初始化列表中呢? 答案是NO
一是static属于类,它在未实例化的时候就已经存在了,而构造函数的初始化列表,只有在实例化的时候才执行。
二是static成员不属于对象。我们在调用构造函数自然是创建对象,一个跟对象没直接关系的成员要它做什么呢。
还有一个问题就是上面那个仁兄说的,需要初始化的数据成员是对象(继承时调用基类构造函数) ;这个显然是不对的。下面代码能够很好说明了这个问题。c需要初始化不是因为它是类对象,是因为他的成员有引用。
class A { private: int a; };class B : public A{private: int aa;public: B(int i ):aa(i),b(9){}; const int b; A c;};
- [C学习]函数(?)
- C#(WINFORM)学习
- C学习(2)
- 学习资源(C++)
- C++&C学习笔记(一)(基础)
- Linux-GCC学习(C/C++)
- C指针学习(Pointers in C)
- 如何学习C++.C++学习50条!!!
- 学习C语言的相关网站(C学习资料)
- 学习C语言的相关网站(C学习资料)
- 如何学习C++(经典)
- [C学习]总结(数据类型)
- ---------------C#(.NET)学习步骤---------
- C++test 学习(一)
- C++test 学习(二)
- C++test 学习(三)
- C++test 学习(四)
- C++test 学习(五)
- 汇编项目实例
- ffmpeg filter开发
- POI导入Excel并处理数据
- 图像的延时加载lazyload.js
- CSS布局相关操作
- C++学习(50)
- GO学习日记(二)Visual Studio Code GO插件配置
- 利用虚拟机Ubuntu的Samba服务,实现Windows映射网络盘到Ubuntu
- eclipse中svn代码乱码
- 网站已备案欢迎访问个人独立博客网站:www.stevin3t3y.site
- Android 计时器 分:秒:毫秒 http://download.csdn.net/detail/tangjili5620/9876529
- RecyclerView SDK25的各种兼容问题
- 博客的第一天
- mysql子查询