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;       //定义ia.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 不能访问非静态成员变量

浙江大学翁恺C++自学笔记相关推荐

  1. 『零基础学Java语言-浙江大学-翁恺』第6周 使用对象

    以下为个人学习笔记和习题整理 课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC https://www.icourse163.org/course/ZJU-1001541001 文章目 ...

  2. 面向对象程序设计-C++(视频) 浙江大学 翁恺老师

    网易云课堂视频转存:面向对象程序设计-C++(视频) 浙江大学 翁恺老师 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012183487/art ...

  3. 浙江大学翁恺老师的城堡游戏源代码

    许多小伙伴们可能因为课程关闭无法查看课件了,所以下面我来给出翁恺老师的源代码 Game.java中的: package castle;import java.util.*;public class G ...

  4. 中国大学MOOC|C语言程序设计(浙江大学翁恺)|习题与解答

    文章目录 00-0. 题目 02-0. 整数四则运算(10) 02-1. 厘米换算英尺英寸(15) 02-2. 然后是几点(15) 02-3. 逆序的三位数(10) 02-4. BCD解密(10) 0 ...

  5. Java视频教程(浙江大学翁恺)

    该视频已转移至天外飞仙阿贵处,要是想看的时候再拷过来. 小诗一首: 清风拂我面,大宝舒吾心. 不思移步舞,飞仙入梦来. 记四位学友! 于2006年5月

  6. 零基础学Java语言课后习题——浙江大学翁恺

    本着学习java的想法,学习了该课程.写了一些简单的代码,仅供参考.如果也有在学习此课程的同学,对题目的代码有更好的想法,还请不吝赐教. 代码会不断更新,敬请期待...... 代码更新完毕:) 目录 ...

  7. MOOC 浙江大学 翁恺 程序设计入门C GPS数据处理

    GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The Nationa ...

  8. 编程题 gps数据处理c语言,第八周指针与字符串编程练习/课堂作业 单词长度+GPS数据处理《程序设计入门——C语言》第七期 浙江大学 翁恺...

    1.单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's& ...

  9. 【c语言跟练】翁恺-跟学笔记-课堂练习

    课堂练习:判断 1.计算时差2.0:两个时间结点 #include <stdio.h> int main() {int hour1, min1;int hour2, min2;scanf( ...

最新文章

  1. Matlab中plot函数全功能解析
  2. python百度网盘-bypy-百度网盘Python客户端 linux
  3. 漫游Kafka之过期数据清理
  4. 水晶报表基础入门——1.水晶报表技术
  5. linux truncate文件,linux系统编程:用truncate调整文件大小
  6. 【转载保存】Jsoup使用
  7. mysql备份表恢复数据库_mysql备份恢复数据库据/表
  8. 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
  9. 浮躁的世界里 我们要的是生活
  10. jQuery Gantt Package控件发布v3.0版本
  11. vs vb连接mysql,用vs2010的vb.net建立和access数据库的连接后的奇怪问题:关于本地复制...
  12. 亲测~Win10开启系统自带Wifi热点步骤
  13. amd一键超频怎么用_(完整版)超频必看AMD_CPU超频教程
  14. xml解析错误语法错误
  15. 家用空气净化器除甲醛什么品牌好 能除甲醛吗
  16. 页面5秒钟刷新一次(html,php)均可用
  17. Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)
  18. 为什么新冠德尔塔毒株如此“危险”?
  19. seaborn画直方图、条形图、盒图、散点图等常用图形
  20. matlab第八章答案,MATLAB课件第八章线性代数基础

热门文章

  1. Java 计蒜客——开关灯
  2. E. Vasya and Good Sequences
  3. linux vi 替换
  4. 千万别活成自己最讨厌的样子
  5. 学习爬虫的感想和心得
  6. 听听别人怎么说:VueJS 与 ReactJS
  7. 全球及中国没药香精油行业研究及十四五规划分析报告
  8. 收入为什么增加记入贷方而不是借方--完美解答
  9. 数据可视化分析框架 amCharts 5
  10. linux系统下多终端管理工具,terminator