C++学习总结

        什么是C++,C语言是一门结构化和模块化的语言,适合处理较小规模大的程序,于是就提出了一种面向对象的思想,C++就是基于C开发出的面向对象的语言,它既可以进行C的面向过程程序设计,又可以进行基于对象的程序设计,还可以进行面向对象的程序设计。

C++里的专业术语

     1)类:class
    描写现实世界中的事物(包括特征和行为),例如:人,特征:身高、年龄、性别、肤色,行为:吃饭、走路、睡觉等等,它实质是抽象的描述事物,它其实是不存在的。
(2)对象
    对象是类的实例化,实实在在存在于现实世界中,特指的概念
(3)继承
    相当于是一个新类共享了另一个或多个类的特征和行为,该新类和其他类的关系,称之为继承,例如:儿子  父亲  ----继承
(4)多态
    多种形态,一种接口,多种方法,举例:你(8岁)  父亲  -----买票行为-----你买票(半票)---父亲(全票)
(5)封装
    c语言里函数就是封装的概念,将数据和数据的操作封装在一起
(6)组合(聚合)
    一个类中包含了另一个类的对象,就将类和另一个类的对象的关系,称之为组合关系
(7)静态联编(静态绑定)
    一个数据的表达式的类型在编译的时候就已经确定了,称之为静态绑定
(8)动态绑定(动态联编)
    一个数据的表达式的类型在运行的时候才确定,称之为动态绑定,典型:多态
(9)特征&属性
    在C++特征&属性就是代表变量,如果变量存在于类中,那么称之为成员变量
(10)行为&方法
    在C++行为&方法就是代表函数,如果函数存在于类中,那么称之为成员函数

命名空间

        用于存放变量、函数和类,在编写程序中,可能会出现命名重复的时候,命名空间就是对标识符进行区分,避免冲突。

        关键字:namespace

        格式:namespace+标识符 ------->表示创建一个命名空间

namespace ysm
{
    int a=5;
    int b=6;
    void add()
    {
        return a+b;
    }
}

        注:命名空间可以嵌套、同一个工程中可以存在多个相同名字的命名空间

命名空间的调用

        域作用符号::,通过命名空间::命名空间成员,这样就可以访问到命名空间相应的成员

        

#include<iostream>

using namespace std;

namespace ysm
{
    int a=5;
    int b=6;
    int function()
    {
        return a+b;
    } 
}

int main()
{
    cout<<"a+b="<<ysm::function<<endl;
    return 0;

}

输入输出

        

#include<iostream>
using namespace std;
int a,b,c;
void input()
{
    cin>>a;
    cin>>b>>c;  //关键字cin+>>,表示输入b的值
}

void output()
{
    cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;

}

int main()
{
    input();
    output();
    return 0;
}

 注:输入是“>>”符号,输出是“<<”符号,输出结尾有“endl”字符串,表示输出结束换行。

内存模型

        代码区:存放函数的二进制代码,由操作系统进行管理;

        全局区:存放全局变量和静态变量以及常量

        栈区:由编译器自动分配和释放,若程序员不释放,程序结束时由草走系统回收

        堆区:(即自由存储区),在类的实例化过程中在栈区和堆区为其分配内存,是为每个对象生成一个拷贝。

注:不同区域存放的数据,赋予不同的生命周期。

类和对象

        类(class)

              描述现实世界中的事务,用C++进行编程的时候,通常是将现实的事物用类来描述,  ,类的关键字:class

                class 类名 (标识符名称)

                 {

                        特征--->变量

                        行为---->函数

                  };

#include<iostream>

using namespace std;

class student
{
public:
        const char* name; //描述姓名
        const char* sex; //描述性别
        int age;//描述年龄
         int No;//描述学号
    void eat()
    {
        //描述吃饭的行为
    }
    void sleep()
    {
        //描述睡觉的行为
    }

};

int main()
{
    student zhangsan;
    zhangsan.name = "张三";
    zhangsan.sex = "男";
    zhangsan.age = 22;
    zhangsan.No = 20191109;

    cout <<"姓名:" << zhangsan.name << endl;
    cout << "年龄:" << zhangsan.age << endl;
    cout << "性别:" << zhangsan.sex << endl;
    cout << "学号:" << zhangsan.No << endl;

        return 0;
}

运行结果为:

对象

        对象是类的实例化(特指实际的例子),是特指的概念。

        (1)在栈区实例化

                格式:类名+对象名(标识符名称)

                       student  zhangsan 

                访问格式:

                        对象名(标识符名称).成员

                        zhangsan.name / zhangsan.eat

             (2)在堆区实例化

                   格式:类名   *  对象名(标识符名称)= new  类名;

                        student * zhangsan = new student;

                  访问格式:

                                对象名(标识符名称)-> 成员;

                                zhangsan->No  /zhangsan->sex

        类的成员访问修饰符

                        public(公共)、protected(受保护)、private(私有)

构造函数

        构造函数值一种特殊的函数,它实质还是函数,如果用户没有编写构造函数,那么编译器会自动生成一个默认的构造函数。

作用:初始化类的成员变量

格式:

                类名 (参数列表)
    {
        //代码块---用于初始化类的成员变量
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_40496454

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值