类和对象初步
1.
类的定义
在定义外成员函数的实?/p>
2.
类的成员函数之间可以相互调用,类的成员函数也可以重载,也可设默认参数?/p>
3.
一般来讲,一个对象占用的内存空间的大小等于其成员变量的体积之和。每个对象都有自己的存储
空间(成员变量),但成员函数只有一?/p>
对象?/p>
.
成员?/p>
指针
->
成员?/p>
引用?/p>
.
成员?/p>
4.
private
:
一个类的私有成员,只能在该类的成员函数中才能访?/p>
public: proteced:
5.
class
默认
private struct
默认
public
6.
内联成员函数:成员函数名前加
inline
或函数体写在类定义内部的成员函数。执行更快,但会带来
额外的内存开销
构造函?/p>
1.
构造函?/p>
全局变量在堆上,
系统自动初始化为零?/p>
局部变量在栈上?/p>
初始值是随机的,
需要初始化?/p>
2.
构造函数:对对象进行初始化。构造函数执行时对象的内存空间已经分配,构造函数的作用是初?
化这片空间。可重载,不写的话有默认构造函数,但是如果编写了构造函数,那默认构造函数不?/p>
再执行。是一类特殊的成员函数。不写返回值类型,函数名为类名?/p>
3.
对象在生成时一定会调用某个构造函数,一旦生成,不再执行构造函数?/p>
4.
P183 Ctest *pArray[3]={new Ctest(4),new Ctest(1,2)}
5.
复制构造函数:其是构造函数的一种,只有一个参数,为本类的引用,防止混淆,构造函数不能以
本类的对象作为唯一的参数?/p>
默认复制构造函数?/p>
6.
复制构造函数被调用的三种情形:
1
用一个对象去初始化另一个对象时
Complex C1(C2) Complex
C2=C1; 2
函数的参数是?/p>
A
的对象。形参未必等于实?/p>
函数中用对象的引用不会调用复制构造函
?/p>
void Function(const Complex &c)3
函数的返回值是?/p>
A
的对?/p>
7.
类型转换构造函数:除复制构造函数外,只有一个参数的构造函?/p>
C=6
8.
析构函数:在对象消亡时调用,可以定义其做善后工作。是一类特殊的成员函数,一个类有且只有
一个构造函数。默认析构函?/p>
9.
注意:函数的参数对象以及作为函数返回值的对象,在消亡时也会调用析构函?/p>
10.
构造函?/p>
析构函数
变量的生存期?/p>
全局变量?/p>
main
函数开始执行前初始化。函数调用结束后?
态局部对象不消亡?/p>
main
函数结束时,静态局部对象先消亡,全局对象再消?/p>
11.
静态成员变量和静态成员函数:实质是全局变量和全局函数,被所有的同类共享。生成在对象?
成之前。计算体积时不会将静态成员变量算入其?/p>
老师?/p>
coeblocks C0 13
静态成员变量必须在
类定义外进行声明,声明的同时也可初始化。因为静态成员函数内部不作用于某个对象,所以不
能访问非静态成?/p>
12.
常量对象和常量成员函数:常量对象一旦初始化后,值再也不能改变。常量对象和普通对象都?
调用常量成员函数。通过常量对象调用常量成员函数。常量成员函数内不能调用同类的非常量?/p>
员函数,静态成员函数除外?/p>
13.
封闭类:包含成员对象的类。在定义封闭类的构造函数时,用初始化列表的方式初始化。封闭类
对象生成时,先执行所有成员对?/p>
友元?/p>
this
1.
友元函数:把全局函数和其它类的成员函数声明为友元函数后,可直接在友元函数内部访问该类的私