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++定义了几种只能作为类成员函数说明的函数,它们称为“特殊成员”函数。这些函数影响着给定类对象创建、删除、拷贝以及转换成其它类型对象的方法。这些函数的另一个重要的特性是它们可以由编译器隐含调用。 ...
  • KingCat666
  • KingCat666
  • 2015年04月14日 21:17
  • 1471

关注C++细节——类中的几个特殊函数

C++是面向对象的编程语言,编程中我们不可避免的需要自定义的类,在定义自己的类时我们应该关注类中的几个基本函数的定义——构造函数,复制构造函数,析构函数,赋值操作函数。现在简单介绍一下以上几个函数,由...
  • IAccepted
  • IAccepted
  • 2011年12月02日 21:41
  • 2938

python类中的特殊属性and特殊方法and特殊文件

特殊方法: __init__(self,*attr)方法: 重写__init__方法,也就是类的构造器,类在初始化的时候会首先调用__init__这个方法。 __str_...
  • yhb315279058
  • yhb315279058
  • 2015年12月08日 23:34
  • 516

java中特殊的类

l 特殊的类 实名内部类         将一个类的定义置于另一个类中,这个类就是内部类。    内部类需要遵循以下准则: (1) 内部类的类名只用于定义它的类或语句块之内,在外部引用它是必须...
  • sinat_37810981
  • sinat_37810981
  • 2017年03月08日 13:01
  • 184

PYTHON类的特殊方法

实例1: [python] view plaincopy #-*-coding:UTF-8-*-    class  FirstDemo(object):      """  ...
  • bravezhe
  • bravezhe
  • 2012年07月18日 16:57
  • 3359

python学习(7)定制类的特殊方法

形如__xxx__的函数是类的特殊方法。 常需要修改的特殊方法有下面这些:
  • qq_18738333
  • qq_18738333
  • 2016年03月03日 23:54
  • 740

C++—特殊成员函数

华电北风吹 天津大学认知计算与应用重点实验室 最后修改日期 2015/11/10先看一个有问题的类定义:#include class StringBad { private: cha...
  • zhangzhengyi03539
  • zhangzhengyi03539
  • 2015年11月10日 20:30
  • 502

Python 常用的特殊函数

map map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回 def a(x): return x*2 print map(a, [1, 2, 3, 4]) #结果 [...
  • u010066807
  • u010066807
  • 2016年03月16日 11:44
  • 694

Java特殊类

内部类枚举类…
  • u012440687
  • u012440687
  • 2016年07月22日 09:57
  • 402

Java的特殊类——数组对象的类

Java数组对象的类是一种特殊的类,在Java内部是没有这个类的,数组对象的类是在运行时确立的,没有生命任何成员变量、成员方法、构造函数、Annotation甚至连length成员变量这都没有,它就是...
  • shengzhu1
  • shengzhu1
  • 2017年06月26日 14:57
  • 251
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 特殊的类
举报原因:
原因补充:

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