C++语法基础篇-类、结构体、指针、引用

类可以将变量、数组和函数完美地打包在一起。

类与结构体

1.类的定义

在这里插入图片描述

类中的变量和函数被统一称为类的成员变量。
private后面的内容是私有成员变量,在类的外部不能访问;public后面的内容是公有成员变量,在类的外部可以访问。

2.类的使用

#include <iostream>
using namespace std;
const int N = 1000010;
class Person
{
    private:
        int age, height;
        double money;
        string books[100];    
    public:
        string name;       
        void say()
        {
            cout << "I'm " << name << endl;
        }    
        int set_age(int a)
        {
            age = a;
        }    
        int get_age()
        {
            return age;
        }   
        void add_money(double x)
        {
            money += x;
        }
} person_a, person_b, persons[100];

int main()
{
    Person c;
    
    c.name = "yxc";      // 正确!访问公有变量
    c.age = 18;          // 错误!访问私有变量
    c.set_age(18);       // 正确!set_age()是共有成员变量
    c.add_money(100);
    
    c.say();
    cout << c.get_age() << endl;
    
    return 0;
}

3.结构体

结构体和类的作用是一样的。不同点在于类默认是private,结构体默认是public。(唯一区别)

结构体的定义
1

指针与引用

1.指针

指针指向存放变量的值的地址。因此我们可以通过指针来修改变量的值

在这里插入图片描述

数组名是一种特殊的指针。指针可以做运算:

在这里插入图片描述

2.引用

引用和指针类似,相当于给变量起了个别名。

引用的定义
在这里插入图片描述

链表

使用链表可以快速地理解上述的4个概念!

 /*
 	链表的基本操作 
 */
#include<iostream>
using namespace std;
//定义节点的结构体 
struct Node{
	int val;
	Node * next;
	
	Node(int _val):val(_val),next(NULL){}  //有参构造 
};

int main(){
	Node* p =new Node(1);  //返回的地址,类似java  等价写法:Node node = Node(1); Node *p=&node; 
	Node* q =new Node(2);  //auto,可以自动识别new Node返回值的类型 (但是当前编译器过老不支持auto语法!)
	Node* o =new Node(3);
	
	p->next=q;  //p指向q 
	q->next=o;  //q指向o
	
	Node* head=p; //定义头节点,主要是用于记录 
	
	//添加一个节点(头插法) 
	Node* u =new Node(4);
	u->next=head;   //新加节点指向头节点 
	head=u; 		//更新头节点 
	
	//删除一个节点(链表的删除,不是说将这个节点干掉,而是在原链表遍历的时候,遍历不到即可!) 
	head->next=head->next->next; 
	
	//遍历链表 
	for(Node* i=head;i;i=i->next){
		cout<<i->val<<endl;
	} 
	
	return 0;	 
}
posted @ 2022-01-23 20:36  爪洼ing  阅读(115)  评论(0编辑  收藏  举报