您的位置:首页 > 编程语言 > C语言/C++

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: