- 封装LinkedList的类, 用于表示我们的链表结构. (和Java中的链表同名, 不同Java中的这个类是一个双向链表, 后面我们会讲解双向链表)
#include <iostream>
using namespace std;
class Demo{
public:
Demo(int val=0,int val1=0) : val1(val1) //使用初始化列表对成员变量val val1初始化
{
this->val = val;//赋值
//this->val1 = val1; //const成员是只读的,只能初始化,不能修改
cout << __func__ << ":" << __LINE__ << endl;
}
~Demo()
{
cout << __func__ << ":" << __LINE__ << endl;
}
public:
void setval(int val)
{
this->val = val;
return ;
}
int getval() const //const成员方法:不能修改类对象
{
//val++;//error
myval++;//right 原因:myval是static成员
return this->val;
}
int getval1() const
{
return this->val1;
}
static int getmyval()
{
return myval;
}
private:
int val;
const int val1;//const成员变量
static int myval;//static成员
};
int Demo::myval = 123;
int main()
{
const Demo obj;//const对象
//obj.setval(666);
//error obj是const对象,只能调用const方法
cout << obj.getval() << endl;//right const对象可以调用const方法
cout << obj.getmyval() << endl;//right getmyval()是static方法,是类的成员
return 0;
}
- 在LinkedList类中有一个Node类, 用于封装每一个节点上的信息. (和优先级队列的封装一样)
struct node{
data_t data;
struct node * next;
};
class LinkList{
public:
private:
struct node * head;//头节点
};
- 链表中我们保存两个属性, 一个是链表的长度, 一个是链表中第一个节点.