【第22期】观点:IT 行业加班,到底有没有价值?

C++ 特殊的类

原创 2015年07月07日 10:42:02

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



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++中自动提供的成员函数: ●默认构造函数,如果没有定义构造函数 ●默认析构函数,如果没有定义 ●复制构造函数,如果没有定义 ●赋值运算符,如果没有定义 ●地址运算符,如果没有定义 1、...

C++ 六种特殊成员函数

C++定义了几种只能作为类成员函数说明的函数,它们称为“特殊成员”函数。这些函数影响着给定类对象创建、删除、拷贝以及转换成其它类型对象的方法。这些函数的另一个重要的特性是它们可以由编译器隐含调用。 ...

C++ Primer 学习笔记_105_特殊工具与技术 --联合:节省空间的类

特殊工具与技术 --联合:节省空间的类 联合是一种特殊的类。一个 union 对象可以有多个数据成员,但在任何时刻,只有一个成员可以有值。当将一个值赋给 union 对象的一个成员的时候,其他所有...

浅谈C++类(3)--两个特殊成员mutable与static成员

欢迎转载,但请标明作者 “九天雁翎”,当然,你给出这个帖子的链接更好。 这一次讲我一直没有怎么搞明白的两个特殊类成员,mutable,static。 接着第(1)次的内容,从水果讲起。我们希望有一个成员总是可以被修改,即mutable。哪怕他是const成员函数都可以修改,这种需要感觉还是比较少有。不过我们可以看看例子。 例3.0: #include <string>#include <iostream>using namespace std;class

C++类中的4个特殊函数 - 缺省构造函数、拷贝构造函数、拷贝赋值操作符和析构函数

什么时候会调用拷贝构造函数? 以下三种情况出现时,会调用一个类的拷贝构造函数: 1) 用一个已经实例化了的该类对象,去实例化该类的另外一个对象; 2) 用该类的对象传值的方式作为一个...

Python(私有变量)类中的特殊方法

原帖地址:http://www.devfront.com:8080/?q=node/199 Python学习备忘录 Wed, 2006-10-11 08:14 — Marchday 类中的特殊方法 <p
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)