首页 > 代码库 > 2017.2.20

2017.2.20

1.类

性质关键字:protected:类和派生类可以使用

内联,重载,常成员函数不能修改,mutable不受不受const成员函数影响。

构造函数:可以重载,没有返回值。内嵌类,被包含先构造,最后被释放,包含的反过来

拷贝构造函数:default和delete用法

  1 //delete可以禁用默认生成的函数,禁用构造可以无法实例化
  2 //禁用拷贝构造,可以实现禁止别人拷贝你
  3 //default默认存在
  4 class myclassA
  5 {
  6 public:
  7 	//myclassA::myclassA(void)”: 尝试引用已删除的函数
  8 	//  myclassA() = delete;//默认删除构造函数,无法实例化
  9 	//myclassA() = default;//默认存在
 10 	//myclassA(const 	myclassA &) = delete;//拷贝构造函数
 11 	//myclassA(const 	myclassA &) = default;
 12 	//=
 13 	~myclassA();
 14 };

深拷贝和浅拷贝

  1 string(const string & string1)
  2 	{
  3 		//qian
  4 		//this->p = string1.p;
  5 		//	this->length = string1.length;
  6 		//shen
  7 		this->p = new char[string1.length];
  8 		this->length = string1.length;
  9 		memset(this->p, 0, this->length);//
 10 		strcpy(this->p, string1.p);
 11 	}

静态成员变量:不能在类中初始化,不属于对象变量,可以不借助实例类对象访问,可以用于计数。

静态成员函数:

2.union共同体大小由其中最大类型的决定,始终只能有一个变量,不能继承,成员都是公有的,不能修改。

  内部数据是共享的,对象之间是独立的,代码是共享的。

3.等号和括号的区别

4.explicit  避免类型转换

2017.2.20