类和对象的使用、二次删除、内存泄漏
1、类和对象的使用:
1.1 可以向一个函数传递对象作为参数,对象也可以作为函数的返回值,有传值、传指针、传引用三种方式
1.2 为了避免对象的拷贝,经常传递对象的引用,并使用const避免被修改(const & x)
1.3 如果传值方式返回,系统将创建一个临时对象,来接受返回值
1.4 可以把一个对象赋值给另外一个对象,对象每个成员的值,将一对一拷贝到新的对象,称为逻辑拷贝或浅拷贝
2、二次删除、内存泄漏
2.1 如果对象a,b含有指针成员变量,而指针变量又指向堆上空间,将只拷贝指针成员变量本身的值,造成两个对象的指针指向同一堆上的内存空间,删除对象时造成二次删除
2.2 二次删除中,如果对象a的指针成员变量原来指向堆上空间,将对象b赋值给a,则原来指向的堆上空间没有指针变量控制,造成内存泄漏
3、this指针
3.1 每个对象都隐式的包含了一个成员变量,this
3.2 this是一个指针,指向对象自己,其值是对象的地址
A、简单复合类
Computer2.h
#ifndef __C__No728Class__Computer2__
#define __C__No728Class__Computer2__
#include <iostream>
using namespace std;
class Computer2
{
private:
int lines;
double width;
double height;
public:
Computer2(int l, double w, double h);
~Computer2();
void print();
};
#endif /* defined(__C__No728Class__Computer2__) */
Computer2.cpp