构造函数以及其他工具 构造函数是类中包含的一种特殊函数,他的作用是当声明一个类时,程序会自动调用这个函数,让他给类的成员初始化; 构造函数:
- 构造函数名必须与类的名相似
- 声明构造函数的时候,他是没有返回值的,并且他的前面不要加任何东西:
- 要将函数放在公有部分;
class STUDENTS
{
STUDENTS(int a,int b);
public:
int name;
int id;
short age;
private:
int password;
int account;
};
需要注意的是: 声明与初始化类为下面这种方式:
STUDENTS date1(7,4),date(5,5);
STUDENTS date1,date2;
date1.STUDENTS(7,4);
date2.STUDENTS(5,5);
定义构造函数: 1.和普通结构相似:
STUDENTS::STUDENTS(int a,int b)
{
account = a;
password = b;
}
2.特殊的定义方式:
STUDENTS::STUDENTS()
:account(a),password(b)
{}
无参构造函数:使用无参数构造函数来初始化对象,声明对象时后面不能使用圆括号。
其他工具: 类的const类,内联函数,类的静态成员; const的使用要不不用,要用该用的全部地方使用: 内联函数:不推荐使用 静态成员:静态变量:类中的“全局变量” 静态函数:静态函数的调用不能使用到任何与被调用对象相关的内容;
静态变量:
class STUDENTS
{
STUDENTS(int a,int b);
public:
int name;
int id;
short age;
static int get_grade();
private:
int password;
int account;
static int grade;
};
int STUDENTS::grade = 100;
int STUDENTS::get_grade()
{
grade++;
return grade;
}
向量 向量:可以看作在程序运行中,大小可以改变的数组; 定义:
vector<int> v;
初始化:
vector<int> a(20);
v.push_back(42);
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> a;
a.push_back(10);
for (int i = 0; i < 10; ++i) {
a[i] = i+1;
}
for (int i = 0; i < 10; ++i) {
cout << a[i] << endl;
}
return 0;
}
使用的时候记住一下几点:
- 向量使用前一定要初始化,不然无法赋值与更改;
- 使用size()查看向量大小时,只有向量初始化是下面这种才有意义:
vector<int> a(20);
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> a(10);
cout << a.size();
for (int i = 0; i < 10; ++i) {
a[i] = i+1;
}
for (int i = 0; i < 10; ++i) {
cout << a[i] << endl;
}
return 0;
}
陷阱:赋值到向量范围之外会导致程序出错。
效率问题: 每个向量都有自己的容器,设置合适的容器可以让程序效率提高 v.reserve(32) 向量的容器至少存放32个元素 v.reserver(v.size() + 10)向量容器自动设置容器大小
|