c++
文章平均质量分 78
simplefanC
这个作者很懒,什么都没留下…
展开
-
1477: 多重继承派生(1)--家具、床、沙发和沙发床
1477: 多重继承派生(1)--家具、床、沙发和沙发床Description 家具类Furniture包含3个私有成员数据:家具类型(string type),家具主材料(string mat)和家具价格(int price)。成员函数包括构造函数(家具类型默认为unknown),三个获取私有成员数据的函数(GetType,GetMat,GetPrice)和输出家具类各成员数据函数...原创 2018-05-22 21:05:08 · 1474 阅读 · 0 评论 -
虚析构函数
class A{public: virtual ~A() { cout<<"1"<<endl; }};class B:pubic A{ virtual ~B()//virtual加不加均可 { cout<<"2"<<endl; }};int main(){ A* pa=new B; delete pa;//若无virtual,输出1 //...原创 2018-05-23 12:48:26 · 173 阅读 · 0 评论 -
抽象类
定义:带有纯虚函数的类称为抽象类。class A{public: virtual void f()=0;//函数体没写,纯虚函数,无法实例化对象,子类实现了才可实例化};class B:public A{public: void g(){}};class C:public B{public: void f(){}};int main(){ A *pa;//正确 B b;//错误 C c;//正确 ...原创 2018-05-23 12:48:45 · 125 阅读 · 0 评论 -
虚基类
问题引入:class A{public: void f();};class B:public A{public: void f();};class C:public A{public: void f();};class D:public B,public C{public: void f();};int main(){ D d; d.A::f();//ambiguous,不明确的 return 0...原创 2018-05-22 23:18:44 · 194 阅读 · 0 评论 -
同名隐藏与同名覆盖
同名隐藏:class A{public: void f();};class B:public A{public: void f();};int main(){ A a; B b; b.f();//B::f,同名隐藏(默认自己的f),从基类继承的同名函数被隐藏 b.A::f();//A::f return 0;}同名覆盖:前提:向上转型描述:子类函数体覆盖基类函数体class A{pu...原创 2018-05-22 23:02:33 · 1627 阅读 · 0 评论 -
多态性
实验、多态性【实验目的】1、掌握虚函数的定义与使用方法;2、掌握纯虚函数的定义与使用方法;3、掌握静态类成员的使用·。【实验内容】使用纯虚函数和抽象类对实验四中的第1题进行改进。【要求】先定义一个抽象类Element,提供显示、求面积等公共接口(纯虚函数),然后派生出Point、Line、Circle等图形元素类,并重新定义(override)这些虚函数,完成各自的任务。在这里,Element是抽...原创 2018-05-22 22:20:44 · 255 阅读 · 0 评论 -
类的重用
实验、类的重用【实验目的】1、理解组合和继承两种类的重用方法的概念和各自适用的情况;2、掌握C++中以组合方式定义新类及构造对象的方法;3、掌握C++中以继承方式定义新类及构造对象的方法;4、掌握多重继承和虚基类。【实验内容】设计一个用于人事管理的“People(人员)”基类。考虑到通用性,仅抽象出各类人员都具有的属性 : 编号、姓名、性别、出生日期、身份证号等; 从People(人员)类派生出学...原创 2018-05-22 22:17:47 · 1946 阅读 · 0 评论 -
c++ const
1、常函数:1)不可修改任何成员数据的值2)构成重载2、常对象 如const Circle c; //不可修改 只能调用常函数,确保数据不被修改void f(){ cout<<"a"<<endl;}void f() const{ cout<<"b"<<endl;}Circle c1;c1.f();//输出a...原创 2018-05-22 22:14:24 · 144 阅读 · 0 评论 -
c++ static
常识:1、static的本地变量就是全局变量(存储在全局数据区) 2、constructor are called before main(编译时) 3、static成员变量,static成员函数,持久存储(没有生成对象前已进入内存),不依赖某个对象而存在;即class-wide(共享)例:class A{private: int k; static int i...原创 2018-05-22 22:03:30 · 233 阅读 · 0 评论 -
1480: 多重继承派生(4)--person、student、teacher和graduate类
1480: 多重继承派生(4)--person、student、teacher和graduate类DescriptionPerson类包含私有成员数据姓名name(string),编号code(int)和出生年月日。Student类包含私有成员数据姓名name(string),编号code(int),出生年月日和分数score(int)。Teacher类包含私有成员数据姓名name(string)...原创 2018-05-22 21:14:59 · 1129 阅读 · 0 评论 -
1479: 多重继承派生(3)--person、account、admin和master类
1479: 多重继承派生(3)--person、account、admin和master类DescriptionPerson类包含私有成员数据姓名name(string)和编号code(int)。Account类包含私有成员数据姓名name(string)、编号code(int)和工资pay(int)。Admin类包含私有成员数据姓名name(string)、编号code(int)和实践经验exp...原创 2018-05-22 21:10:50 · 385 阅读 · 0 评论 -
1478: 多重继承派生(2)--雇员,技术人员,销售人员,经理,销售经理,开发部经理
1478: 多重继承派生(2)--雇员,技术人员,销售人员,经理,销售经理,开发部经理Description 某公司雇员(employee)包括经理(manager),技术人员(technician)和销售员(salesman)。开发部经理(developermanger),既是经理也是技术人员。销售部经理(salesmanager),既是经理也是销售员。 以Emplo...原创 2018-05-22 21:08:42 · 3958 阅读 · 1 评论 -
template
1、default template arguments can't be used in function templates#include <iostream>using namespace std;template <class T1,class T2=int>T1 Fun(T2 n){ return n*5.0;}int main(){ Fun<double...原创 2018-05-31 18:05:00 · 649 阅读 · 0 评论