浙江大学翁恺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; //定义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++自学笔记相关推荐
- 『零基础学Java语言-浙江大学-翁恺』第6周 使用对象
以下为个人学习笔记和习题整理 课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC https://www.icourse163.org/course/ZJU-1001541001 文章目 ...
- 面向对象程序设计-C++(视频) 浙江大学 翁恺老师
网易云课堂视频转存:面向对象程序设计-C++(视频) 浙江大学 翁恺老师 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012183487/art ...
- 浙江大学翁恺老师的城堡游戏源代码
许多小伙伴们可能因为课程关闭无法查看课件了,所以下面我来给出翁恺老师的源代码 Game.java中的: package castle;import java.util.*;public class G ...
- 中国大学MOOC|C语言程序设计(浙江大学翁恺)|习题与解答
文章目录 00-0. 题目 02-0. 整数四则运算(10) 02-1. 厘米换算英尺英寸(15) 02-2. 然后是几点(15) 02-3. 逆序的三位数(10) 02-4. BCD解密(10) 0 ...
- Java视频教程(浙江大学翁恺)
该视频已转移至天外飞仙阿贵处,要是想看的时候再拷过来. 小诗一首: 清风拂我面,大宝舒吾心. 不思移步舞,飞仙入梦来. 记四位学友! 于2006年5月
- 零基础学Java语言课后习题——浙江大学翁恺
本着学习java的想法,学习了该课程.写了一些简单的代码,仅供参考.如果也有在学习此课程的同学,对题目的代码有更好的想法,还请不吝赐教. 代码会不断更新,敬请期待...... 代码更新完毕:) 目录 ...
- MOOC 浙江大学 翁恺 程序设计入门C GPS数据处理
GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The Nationa ...
- 编程题 gps数据处理c语言,第八周指针与字符串编程练习/课堂作业 单词长度+GPS数据处理《程序设计入门——C语言》第七期 浙江大学 翁恺...
1.单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's& ...
- 【c语言跟练】翁恺-跟学笔记-课堂练习
课堂练习:判断 1.计算时差2.0:两个时间结点 #include <stdio.h> int main() {int hour1, min1;int hour2, min2;scanf( ...
最新文章
- Matlab中plot函数全功能解析
- python百度网盘-bypy-百度网盘Python客户端 linux
- 漫游Kafka之过期数据清理
- 水晶报表基础入门——1.水晶报表技术
- linux truncate文件,linux系统编程:用truncate调整文件大小
- 【转载保存】Jsoup使用
- mysql备份表恢复数据库_mysql备份恢复数据库据/表
- 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
- 浮躁的世界里 我们要的是生活
- jQuery Gantt Package控件发布v3.0版本
- vs vb连接mysql,用vs2010的vb.net建立和access数据库的连接后的奇怪问题:关于本地复制...
- 亲测~Win10开启系统自带Wifi热点步骤
- amd一键超频怎么用_(完整版)超频必看AMD_CPU超频教程
- xml解析错误语法错误
- 家用空气净化器除甲醛什么品牌好 能除甲醛吗
- 页面5秒钟刷新一次(html,php)均可用
- Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)
- 为什么新冠德尔塔毒株如此“危险”?
- seaborn画直方图、条形图、盒图、散点图等常用图形
- matlab第八章答案,MATLAB课件第八章线性代数基础