C++ 特殊的类
2015-07-07 10:42
197 查看
之前在面试中多少会遇到的一些问题,记录下来以便以后翻看
1、不能复制的类:
class Student{
public:
Student(){};
private:
Student(const Student& S ){};
Student&operator= (const Student&){};
....
}
不需要给复制构造函数和私有赋值运算符提供实现,只需将其声明私有即可确保President不可被复制
2、只能有一个实例的单例类:
class Student{
private:
Student(){};
Student(const Student &S ){};
const Student &operator= (const Student &){};
string name ;
public:
static Student& Get()
{
static Student OnlyOne;
return OnlyOne;
}
void setName( string Na)
{
this->name=Na;
}
};
int main()
{
Student &OnlyOne=Student::Get();
OnlyOne.setName("Oba");
...
}
关键字static不可少
3、禁止在栈中实例的类:
将析构函数声明为私有函数,但不是能阻止在堆中实例化
A a;//error
A *a=new A();// no complie error
1、不能复制的类:
class Student{
public:
Student(){};
private:
Student(const Student& S ){};
Student&operator= (const Student&){};
....
}
不需要给复制构造函数和私有赋值运算符提供实现,只需将其声明私有即可确保President不可被复制
2、只能有一个实例的单例类:
class Student{
private:
Student(){};
Student(const Student &S ){};
const Student &operator= (const Student &){};
string name ;
public:
static Student& Get()
{
static Student OnlyOne;
return OnlyOne;
}
void setName( string Na)
{
this->name=Na;
}
};
int main()
{
Student &OnlyOne=Student::Get();
OnlyOne.setName("Oba");
...
}
关键字static不可少
3、禁止在栈中实例的类:
将析构函数声明为私有函数,但不是能阻止在堆中实例化
A a;//error
A *a=new A();// no complie error
相关文章推荐
- C++ 二维数组中的二分查找
- C++ 复制构造函数为啥用引用作为对象
- 【c++】随机化和枚举
- c++异常管理(二)---setjmp、longjmp与自动变量
- 10行代码编写一个c++服务器
- nyoj阶乘分解因式(1)
- 关于C++builder中精度丢失的问题
- C++读取特定路径下文件目录及文件名称&&文件结构
- 最大子序列和
- 黑马程序员——C/OC—OC对比C语言的差异化
- C语言实现双链表基本操作(创建、查找、插入、删除)
- chapter16test6
- C语言学习笔记:18_数组-二维数组
- 默认实参需要注意的几个地方
- C语言学习笔记:17_数组-一维数组(基本操作,选择和冒泡排序,斐波那契数列)
- C++知识点随笔(三):static、const、friend、inline
- C#调用C/C++动态库 封送结构体,结构体数组
- C++异常系列(一)----setjmp 与 longjmp
- C++ 大规模程序设计 之 物理层次结构
- C语言语法部分