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++类成员变量的初始化顺序以及特殊成员的初始化方法规则

说到类的成员变量的初始化顺序,对于初学者很多容易混淆其顺序,以为简单的按初始表来初始化,其实不然,现在我来详细讲解下类的初始化顺序: 首先由简单开始: class people { public: ...

C++类的特殊数据成员

在构造函数一节的介绍中, 我们已经提到了在C++中有几类特殊的数据成员不能使用构造函数进行初始化, 他们有自己的初始化方式, 下面就具体介绍下这几种数据成员。 一、const 数据成员  ...

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型)    常量和引用,...

C++模板的特化详解(函数模版特殊,类模版特化)

参照 小解C++模板特化 C++模板的特化 模板的全特化与偏特化 模版与特化的概念函数模版与类模版C++中模板分为函数模板和类模板 函数模板:是一种抽象函数定义,它代表一...

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: a.引用 b.常量 c.静态 d.静态常量(整型) e.静态常量(非整型)...

C++类中特殊成员函数总结

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

C++类特殊数据成员总结(常数据成员、静态数据成员、静态常数据成员)

一、引言 C++中类的成员变量有以下几种特殊的类型: 1、常成员变量 2、静态成员变量 3、静态常成员变量(基本数据类型) 4、静态常成员变量(自定义数据类型) 二、常成员变量 C+...

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: a.引用 b.常量 c.静态 d.静态常量(整型) e...

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法 有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: a.引用 b...

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: a.引用 b.常量 c.静态 d.静态常量(整型) e.静态常量(非整型)     ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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