C++类和对象知识点整理

类声明中的函数都将自动成为内联函数。 

构造函数的做用:对对象进行初始化。(对象不能像标准类型同样进行初始化,程序只能经过成员函数访问数据成员,不然违反oop原则)构造函数是C++提供的特殊成员函数,无声明类型,无返回值。ios

构造函数易错点:类成员名不能做为参数名,参数表示的是赋给成员的值。函数

使用构造函数进行初始化:oop

1.      显示调用spa

Stock food=Stock(“world”,250,1.25);code

2.      隐式调用对象

Stock food(“world”,250,1.25);内存

3.      使用newio

Stock *food=new Stock(“world”,250,1.25);class

默认构造函数:stream

为全部参数都提供了默认值的构造函数,一般是指无参的构造函数。若是没有提供任何构造函数,则为以下函数:Stock::Stock(){}

注意点:定义了非默认构造函数,而没有提供默认构造函数,不显示初始化会报错。(代码以下)

析构函数:

做用:通常都是回收一些分配出去的内存,或者通知有依赖关系的对象进行某些特殊处理。

实例代码:

通常类在头文件中声明在源文件中定义

如代码所示在定义了非默认构造函数,若是把默认构造函数的定义去掉,则main函数体中第一行Sabc sh1;会报错

头文件Sabc.h

#ifndef Sabc_H
#define Sabc_H
class Sabc
{
public:
	Sabc();
	Sabc(int aa, double bb, char cc);
	~Sabc();
	void show();
private:
	int a;
	double b;
	char c;
};
#endif

类定义文件Sabc.cpp

#include <iostream>
#include "Sabc.h"
using namespace std;

Sabc::Sabc()
{
	a = 2;
	b = 2.2;
	c = 'c';
}

Sabc::Sabc(int aa, double bb, char cc)
{
	a = aa;
	b = bb;
	c = cc;
}

Sabc::~Sabc()
{
}

void Sabc::show()
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}


use.cpp

#include "Sabc.h"
int main()
{
	Sabc sh1;
	Sabc sh2(1, 1.2, 'a');
	sh1.show();
	sh2.show();
	return 0;
}