C++学习笔记(3)——多态与虚函数
零、为什么引入多态 这部分是我写完第一部分后再加进来的,因为在我写这篇笔记的时候,其实还是不太懂为什么要用多态这个玩意儿的,虽说多态在面向对象程序设计里十分重要,而且不可或缺。既然不知道为什么要用多态,那就自己来体验一下没有多态的感觉吧! (本部分暂略) 一、多态的概念&原理 “多态”指的是同一名字的事物可以完成不同的功能。多态可以分为两种: 编译时的多态:即函数、运算符的重载、对重载函数的调用,在编译时就能根据实参确定应该调用哪个函数 运行时的多态:与继承、虚函数有关 虚函数,就是在声明前加了virtual关键字的成员函数。静态成员函数不能是虚函数。包含虚函数的类称为“多态”。下面是一个程序例子: 1234567891011121314151617181920212223242526272829303132333435363738394041#include<iostream>using namespace std;class A{ public: int n; //一定要加virtual virtual void Print()...
C++学习笔记(2)——继承与派生
一、基本概念 从一个类派生出另一个类的格式如下: 12345678910class A//基类{ public: int n1;}; class B:public A//派生类,继承方式一般用public,当然也有其他方式 { public: int n2;}; 此时类A派生出了类B,类A称为基类,类B称为派生类,派生类对象也是基类对象。 在公有派生的情况下,存在着三条赋值兼容规则(这个和C++三种传递方式(值传递、指针传递和引用传递)相对应): 派生类对象可以赋值给基类对象; 派生类对象可以用来初始化基类引用; 派生类对象的地址(或派生类的指针)可以赋值给基类的指针。 注意,这三条规则仅限于公有派生,如果是私有派生和保护派生则不成立。 这个规则很好理解。基类没有派生类的全部成员,但派生类有基类的全部成员,因此派生类>基类,基类对象当然可以接收派生类的值、址和引用了,但是反过来却不行。 下面这个例子(续上面的程序)展示了这三条规则: 1234567A a;B b;a = b;//派生类对象赋值给基类对象...
C++学习笔记(1)——类和对象
零、C++的指针 动态内存分配实例: 123456789//分配出sizeof(int)大小的空间int *p;p = new int;*p = 5;//分配出10*sizeof(int)大小的空间int *q;q = new int[10];q[4] = 5; 释放动态内存分配实例: 123delete p;delete [] q;delete q; //出错! 定义常量指针实例: 123456789int a, b;const int *p = &a;//写成int const也行*p = 1;//出错!不能通过常量指针修改指向的内容a = 1;*p = &b;int *q;p = q;q = p;//出错!这样子的话q可以修改p指向的内容了 定义指针常量实例: 12345int a;int *const p = &a;//不能再指向别的地址了!!!int q;q = p;p = q;//出错! const*不能通过指针修改变量值,*const不能指向别的地址。总之,const和*,谁在前面,谁就不允许改变。 一、构造函数&析构...
Python爬取天气实况
一、最初的想法 我们昨天弄了个爬取天气实况的程序,本文章用以记录思考和编写过程。 这里选取的爬取网站是http://q-weather.info/weather/59488//realtime/ 下图就是查天气网站截图。 (站号修改成其他气象站号就可以查询其他城市的实况) 我们以59488珠海站为例,爬取的HTML源代码如下: 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">\n<head>\n\t<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />\n\t<...
Python爬虫代码基本框架
Python爬虫代码基本框架 框架如下: 12345678def getHTMLtext(url): try: r = requests.get(url, timeout=30) r.raise_for_status() #如果状态不是200,引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: return "产生异常" 尝试爬取当当网商品搜索结果页面 刚刚学完爬虫的基本知识,也基本会用request、bs4和re这三个库了,于是尝试爬取当当网商品搜索页面,这是本人第一次爬虫。 这次的爬取目标是获取搜索页面的所有商品价格和名称,所以我们对爬下来的HTML文本做了些许分析。 搜索关键词假设是“六年级”,那么与第一个商品有关的HTML便如下(用了YAML代码块来表示,请见谅)。可以发现,与第一个商品有关的名称位于名称为p、属性为name的标签下,而价格则位于名称为p、属性为price的标签下。值得注...



