C++ 特殊的类

之前在面试中多少会遇到的一些问题,记录下来以便以后翻看



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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值