C++

来源:互联网 发布:淘宝老顾客回购权重 编辑:程序博客网 时间:2024/05/17 21:45

1. 普通的非const成员函数中,this指针是指向类类型的const指针,可以改变this指向的值,但不能改变其地址。但是,const成员函数,是指向const类类型的const指针。

2. 基于const的重载,

    ①可以基于成员函数是否为const进行重载:

Screen & display(std::ostream &os){return *this;}
const Screen& display const (std::ostream&os){return *this;}

    ②可以基于指针形参是否为const,重载一个函数,cons

 

 

1.C++构造函数的初始化列表的初始化顺序只与他们在类中声明的顺序相关。
2. 类成员的初始化小结:
     ①类中的任何成员变量不能在定义时进行初始化;
     ②一般的数据成员可以在构造函数中初始化;
     ③const数据成员,必须在构造函数的初始化列表中进行初始化。ClassName::ClassName():a(0),b(1){}
     ④static 要在类的外面进行初始化: int ClassName::varName = 3;
     ⑤数组成员不能在初始化列表中进行初始化。(C++中不存在常量数组)
     ⑥不能给数组指定明显的初始化。
3. const 与指针:位于*左侧,修饰所指向的变量,即指针指向变量。const int *p 等同int const *p;位于右侧,修饰指针本身,即指针本身是常量。
4. const与函数:
     ①普通函数的参数,通常用于参数为指针或引用时;如const int *a或const int &a,保护参数的值不被改变;
     ②返回值:const按照修饰原则进行修饰,起到响应的保护作用;
     ③类成员函数的使用,一般放在函数体之后:成员函数不会改变数据成员。

5. 在C++或C#中(任意一种语言),struct和class有什么不同?class类成员默认私有,struct默认公有。
6. 类成员函数的重载,覆盖,隐藏的区别?重载:允许存在多个同名函数,而这些函数的参数表不同覆盖:是指子类重新定义父类虚函数的方法隐藏:将父类成员函数封装
7.      黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
         白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所          有内部成分是否以经过检查


2. 良好的编程习惯是什么:除了基本的功能实现外,代码规范,考虑所有的输入条件,考虑溢出;
     例如:atoi()考虑的基本问题:空指针,空字符串,正负号,溢出,

 

原创粉丝点击