类、结构体、指针、引用
(1)类中私有变量private 不能在外部调用,public的可以;
class person{
private:
int age,height;
double money;
public:
int get_age(){
return age;
}
void add_money(double x){
money+=x;
}
}; // 结尾记得加“;”
(2)如果不定义该变量是共有还是私有,则“类”默认是private,而结构体默认是public;
结构体与类只有上述的一个区别。但在习惯上,将比较短的、与数据相关的,定义成结构体;把一些复杂的、较长的,打包成“类”。
(3)声明:
class Person(){
}c,persons[100]; //直接声明该类的变量
int main(){
Person persons[100]; // 声明Person类的变量,与上边注释处等价
}
(4)指针指向存放变量的值的地址,或者说是该值的“数组下标”。因此可以通过指针修改该变量的值
int main(){
int a=10;
int* p = &a; // “&”是取地址符号
*p = 12;
cout << *p << " " << a;
}
输出:
12 12
(5)链表
#include <iostream>
using namespace std;
struct Node
{
int val;
Node* next;
Node(int _val) : val(_val),next(null){};
// 构造函数(固定语法,记住)
} *head;
int main()
{
for (int i = 1; i <= 5; i ++ )
{
Node* p = new Node(); // 动态开辟:指生成一个结构体,并把结构体指针放到p里面
// 定义了Node类型的变量,返回的是变量的地址
// Node* p = Node(1); 返回的是变量的值
p->val = i; // p是指针,故调用结构体变量时用p->val=i
// 如果p不是指针而是变量,则调用结构体变量时用p.val=i
p->next = head;
head = p;
}
for (Node* p = head; p; p = p->next)
cout << p->val << ' ';
cout << endl;
return 0;
}