Q1: 谈谈你是怎么认识c++中的模板的?
A:
模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发。(结合stl更好)
Q2: 在c++的一个类中声明一个static成员变量有没有用?
A:
在C++类的成员变量被声明为static(称为静态变量),意味着该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,也就是说不管创建多少对像,static修饰的变量只占有一块内存.其修改值为该类的其他所有实例所;而类的静态成员,函数也只能访问静态成员(变量或函数).static是加访问控制的全局变量,不被继承
Q3: C++中为什么用模板类。
A:
1:可以用来创建动态增长和减少的数据结构
2:他是类型无关的,因此具有很高的可复用性
3:他在编译时而不是运行时检查数据类型,保证了类型安全
4:他是平台无关的,可移植性
5:可用于基本数据类型
Q4: 函数模板与类模板有什么区别?
A:
函数模板的实例化是由编译程序在处理函数调用时自动完成的
类模板的实例化必须由程序员在程序中显示指定
Q5: 请你谈谈你在类中如何使用const的。
A:
有时我们希望某些常量只在类中有效。由于#define 定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用 const 修饰数据成员来实现。const 数据成员的确是存在的,但其含义却不是我们所期望的。const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。 不能在类声明中初始化 const 数据成员。
const 数据成员的初始化只能在类构造函数的初始化表中进行。
Q6: 函数重载,我们靠什么来区分调用的那个函数?靠返回值判断可以不可以?
A:
参数的个数,参数的类型 ,参数的顺序
不能靠返回值判断
Q7: 所有的运算符都能重载吗?
A:
有一些不行,这种限制是出于安全方面的考虑,可防止错误和混乱
(1):不能改变内部数据类型(如int,float等)的运算符.
(2):不能重载’.’因为’.’在类中对任何成员都有意义,已经成为标准用法.
(3)不能重载目前C++运算符集合中没有的符号,如#,@,$等;
原因有两点,一是难以理解,二是难以确定优先级
(4):对已经存在的运算符进行重载,不能改变优先级规则,否者将引起混乱