首页 > 编程语言 >【C++入门】(七)类、结构体、指针、引用

【C++入门】(七)类、结构体、指针、引用

时间:2023-01-02 16:23:24浏览次数:38  
标签:include string int 入门 C++ using 指针 cout

一. 类与结构体

  • 类的定义:
    class Person
    {
        private:
            int age, height;
            double money;
            string books[100];
    
        public:
            string name;
    
            void say()
            {
                cout << "I'm " << name << endl;
            }
    
            int get_age()
            {
                return age;
            }
    
            void add_money(double x)
            {
                money += x;
            }
    };
    
    //类中的变量和函数被统一称为类的成员变量。
    //private后面的内容是私有成员变量,在类的外部不能访问;public后面的内容是公有成员变量,在类的外部可以访问

     

  • 类的使用:
    #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;
    }

     

  • 结构体和类的作用是一样的。不同点在于类默认是private,结构体默认是public
    struct 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];

     

二. 指针和引用

  • 指针指向存放变量的值的地址。因此我们可以通过指针来修改变量的值
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a = 10;
        int *p = &a;
    
        *p += 5;
        cout << a << endl;
    
        return 0;
    }

     

  • 数组名是一种特殊的指针。指针可以做运算:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a[5] = {1, 2, 3, 4, 5};
    
        for (int i = 0; i < 5; i ++ )
            cout << *(a + i) << endl;
    
        return 0;
    }

     

  • 引用和指针类似,相当于给变量起了个别名
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a = 10;
        int &p = a;
    
        p += 5;
        cout << a << endl;
    
        return 0;
    }

     

三. 链表

#include <iostream>
using namespace std;

struct Node
{
    int val;
    Node* next;
} *head;

int main()
{
    for (int i = 1; i <= 5; i ++ )
    {
        Node* p = new Node();
        p->val = i;
        p->next = head;
        head = p;
    }

    for (Node* p = head; p; p = p->next)
        cout << p->val << ' ';
    cout << endl;

    return 0;
}

 

标签:include,string,int,入门,C++,using,指针,cout
From: https://www.cnblogs.com/ZWJ-zwj/p/17020054.html

相关文章

  • 狂神说Java(零基础) Java入门笔记
    1.Java帝国的诞生​1972年C诞生,比1995年诞生的Java早了20多年。C贴近硬件,运行极快,效率极高,用于操作系统、编译器、数据库、网络系统等,但是在指针和内存管理方面,常常让程序......
  • 漫谈C++内存和OpenGL各种缓冲对象(下)
    OpenGL的纹理缓冲对象创建、释放、使用    纹理用于给模型贴上颜色,类似于顶点缓冲也是GPU中的一块显存,用图片格式保存了CPU段传入的数据。纹理属性包括纹理大小、......
  • 一个 c++ 模板
    #include<cstring>#include<cmath>#include<algorithm>#include<iostream>usingnamespacestd;namespacemyio{ intread(){ intx=0;charch; while(!isdigit(......
  • C++ Style Guide
    CommonRulesThefollowingstyleguidelineswillbefollowedforbothSliceandC++code:C1.Bracesforcompoundstatementswillbeontheirownlines,atthesa......
  • Kusto 2023 快速入门 开篇 —— 启发式和探索式的大数据分析工具
    陈希章2023年1月2日于上海这是一个献给自己的新年礼物,但其实已经构思了很久,这一方面跟我多年的工作经历有关——我的职业生涯中最为有意思的部分可能就是跟数据打......
  • C++笔记整理
    把自己印象笔记中所记录的一些C++知识点整合了一下,可用于面试前对C++知识的快速回顾。不过并不全,只是自己笔记中的摘要,重要的还是系统和踏实地学习。每个知识点不分顺序。1.......
  • C++ priority_queue使用方法
    以leetcode1081题为例,https://leetcode.cn/problems/number-of-orders-in-the-backlog/classSolution{public:intgetNumberOfBacklogOrders(vector<vector<int......
  • C/C++高级语言程序设计课程设计任务书[2022-01-02]
    C/C++高级语言程序设计课程设计任务书[2022-01-02]高级语言程序设计课程设计任务书课程设计名称 中文:高级语言程序设计课程设计英文:ComputerProgrammingBasicCompreh......
  • C/C++课程设计题目[2023-01-02]
    C/C++课程设计题目[2023-01-02]选题1:考勤信息管理系统某公司对员工的出勤采用计算机管理,为该公司设计一个员工考勤信息管理程序。系统包括三类用户:管理员,考勤员,普通职员......
  • C/C++通讯录管理程序[2023-01-02]
    C/C++通讯录管理程序[2023-01-02]问题描述:编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求:程序应提供的......