编程过程中遇到的问题汇总1
来源:互联网 发布:linux 命令行颜色 编辑:程序博客网 时间:2024/06/04 18:36
1. & * 的作用 放在形参里 &是干什么的?
答:*是指针 &取指针的地址 放在形参里,&是一种按引用传递的方式,传递的是地址,即改变了里面的值,又使得该参数为该地址空间的别名,就是说如果是值传递,只是把值给了函数,原变量存储的值不变。而引用传递,该变量的值也变了。
2.null这个东西都什么时候哪里用?
答:C语言把它作为字符串的最后一个字符,以表示字符串到此结束."\0" 把一个指针赋值为NULL,通常的说法是“将指针悬空”。这样,指针就无法再进行任何数据访问了。
3.为什么析构函数有的时候要写函数内容,有的时候就放在那里就好了?
答:如果构造函数使用new来分配内存,则析构函数将使用delete来释放这些内存。如果没有使用new,析构函数实际上没有需要完成的任务,这种情况下,只需让编译器生成一个什么都不要做的隐式析构函数即可。
4.什么时候要用友元函数,为什么很多时候重载操作符的时候经常用友元 输入输出操作符 加减法操作符一般用友元 赋值操作符用做类的成员函数是为什么呢?
答:友元有三种:友元函数 友元类 友元成员函数 通常让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。友元函数在类中声明,但不是成员函数,不能用成员操作符来调用。
如果要为类重载操作符,并将非类的项作为其第一个操作数,则可以用友元函数来反转操作数的顺序。
对于加法操作符的重载:
Time operator+ (const Time &t)const;
friend Time operator+ (const Time &t1,const Time &t2);
加法操作符需要两个操作数,对于成员函数版本来说,一个操作数通过this指针隐式地传递,另一个操作数作为函数参数显式地传递;对于友元版本来说,两个操作数都作为参数来传递。
5.this指针怎么用?return *this 到底return的是什么?
答:每个成员函数(包括构造函数和析构函数)都有一个this指针。this指针指向调用对象。如果方法需要引用整个调用对象,则可以使用表达式*this。在函数的括号后面使用const限定符将this限定为const,这样将不能使用this来修改对象的值。this是对象的地址,*this是指针指向的值
6.virtual是怎么用的?
答:这个是虚拟成员函数。在基类方法的声明中使用关键字virtual可使该方法在基类以及所有的派生类中是虚拟的。如果定义的类将被用作基类,则应将那些要在派生类中重新定义的类方法声明为虚拟的。
构造函数不能是虚函数
析构函数应该是虚函数,除非类不用做基类
友元不能是虚函数,因为友元不是类成员,只有成员才能是虚函数
如果派生类没有重新定义函数,将使用该函数的基类版本
- 编程过程中遇到的问题汇总1
- 编程过程中遇到的问题汇总2
- OpenStack部署过程中遇到的问题汇总(1)
- VC编程过程中遇到的问题
- 记编程过程中遇到的问题
- 学习Spring Security的过程中遇到的问题汇总
- 搭建Linux服务器的过程中遇到的问题汇总!
- android开发过程中遇到的一些问题汇总
- QTP使用过程中遇到的问题&解决方法汇总
- MAVEN使用过程中遇到的问题汇总
- 使用LR11过程中遇到的一些问题汇总
- 创建yolo静态库过程中遇到的问题汇总
- 升级php7+安装laravel过程中遇到的问题汇总
- 开发过程中遇到的各种问题汇总
- Swift 使用WKWebview过程中遇到的问题汇总
- Gerrit 安装过程中遇到的问题汇总。
- Tensorflow编写过程中遇到的各种小问题汇总
- web service 开发过程中遇到的问题汇总:
- android Main.mk分析
- 团队管理中失败领导者的十个特征
- 迭代器Iterator
- 项目中用到的工具
- 怎么让一个类只能定义一个对象
- 编程过程中遇到的问题汇总1
- C#编程概述
- 数据结构(6)之队列
- apache FtpServer整合spring逻辑处理
- 思考
- C++实现多态类的方法
- mysql 千万量级的表的优化
- 2014年有道研发岗算法题(9月17):数对之差
- C#编程概述