浙江大学翁恺C++自学笔记

C++的基础知识

头文件

一个类可以放在一个.cpp.h文件中

成员变量

  • 本地变量(local variable):作用域只在函数运行时
  • 成员变量(Fields):作用域-类中
  • 成员变量名=本地变量名时,根据就近原则,成员变量被屏蔽掉
  • 成员变量不在类中而是在类的对象里面 看注释
#include <iostream>
using namespace std;
class A
{
private:
    int i;    //声明i
public:
    void f();
};

void A::f()
{
    i=10;
}
int main()
{
    A a;       //定义i
    a.f();
    
    return 0;
}

成员变量秘密

  • 声明和定义 --是否告知where
  • i属于对象
  • 函数属于类
  • this指针的存在

构造析构

  • 构造无返回类型,可传参
  • 析构无返回类型,无传参
#include <iostream>
using namespace std;
class A
{
private:
    int i;
public:
    void f();
    A();  //构造
    ~A(); //析构
};
void A::f()
{
    i=10;
    cout <<"i="<<i <<endl;
}
A::A()
{
    i=0;
    cout<<"构造执行"<<endl;
}
A::~A()
{
    cout<<"析构执行"<<endl;
}
int main()
{
    A a;
    a.f();
    return 0;
}


对象初始化

  • default construction :没有参数
  • new: 分配空间,调用构造//返回地址
  • delete +地址:调用析构
  • new int[] delete [] p //不只有一个对象
  • new 动态申请数组

访问属性

  • public:公开
  • private:私有
  • protected :子孙和自己
  • friend:友元 //你申明别人是你的友元

初始化列表

  • A():p(0){}
  • A(int i):p(i){}
A(int i):p(i){}
A(int i):{p=i}的区别
1.初始化
2.赋值

对象组合

  • 对象组合(外)
  • 父类(内)

继承

重载默认参数

  • 返回类型不能构成重载
  • 尽量使用已有的代码进行重载
  • 子类构造会自动调用父类构造函数
    • 用子类去调用父类构造
  • 字父类间有名字相同的函数
    • 发生名字隐藏,父类函数及重载被隐藏

缺省参数

  • default argument:拒绝使用
  • where:.h

内联函数

  • what :inline
  • where :.h //声明
  • example:成员函数,声明的时候写函数体可以内联、或者直接放在后面

const

  • 本质:变量
  • Pointer:char *const p 指针本身是const
    • p不能修改,p的内容可以修改
    • const char *p 指向const char 类型
    • *前面对象const,后面星号是const
  • int date()const{}函数const this是const
  • 成员变量const 初始化列表初始化

引用

  • reference:char &r=c 定义的时候初始化,别名
  • 为了让代码少一点*

向上造型

  • 子类当做父类看

多态

  • virtual 虚函数 子类和父类同名函数有联系
  • 通过指针引用调用时,不能确定是什么类型,运行的时候才能确定
    • void render(shape*P)
  • upcast dynamic binding(virtual)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

多态实现

  • 类首有一个指向vtable的指针
  • 析构多态virtual
  • overriding

引用2

  • 传大的参数:使用const int&
  • 函数返回类型有const

拷贝构造

  • 对象传参:复制参数没有执行构造

  • 定义的时候classname a=b 发生拷贝构造

  • T::T(const &T)

  • 成员是指针时会发生指针拷贝
    在这里插入图片描述

  • happen:调用函数() 返回对象

  • default construction 、、 virtual 、、copy

静态对象

  • static where、who see
    在这里插入图片描述

  • 构造只发生一次

  • 静态成员 A::a

  • 静态函数 A::fun 不能访问非静态成员变量
    在这里插入图片描述

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值