![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++面向对象程序设计
Eider1998
这个作者很懒,什么都没留下…
展开
-
C++之函数模板
所谓函数模板就是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代替,这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。看下面的例子就很清楚了。#include<iostream>using namespace std;template<typename T>T max(T ...原创 2019-03-10 10:48:14 · 157 阅读 · 0 评论 -
将普通函数声明为友元函数
通过下面的例子可以了解友元函数的性质和作用例3.12 友元函数的简单例子#include<iostream>using namespace std;class Time{public: Time(int, int, int); friend void display(Time &);private: int hour; int minu...原创 2019-04-14 09:32:03 · 1251 阅读 · 0 评论 -
友元成员函数
friend函数不仅可以是一般函数(非成员函数),而且可以是另一个类的成员函数例3.13 有一个日期(Date)类的对象和一个时间(Time)类的对象,均已指定了内容,要求一次输出其中的日期和时间注:本例中还利用了类的提前引用声明#include<iostream>using namespace std;class Date;//对Date类的提前引用声明c...原创 2019-04-14 09:58:23 · 1693 阅读 · 0 评论 -
将一个double数据与Complex类数据相加
这是一个简单问题,可以使用类型转换函数处理。/****将一个double型数据与Complex类数据相加******/#include<iostream>using namespace std;class Complex{public: Complex(){real = 0;imag = 0;} Complex(double r, d...原创 2019-04-14 13:05:58 · 1474 阅读 · 0 评论 -
访问公有基类的成员
#include<iostream>using namespace std;class Student{public: void get_value() { cin >> num >> name >> sex; } void display() { cout &...原创 2019-04-14 13:32:45 · 582 阅读 · 0 评论 -
设计一个日期类Date要求:使用运算符重载。
3. 设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等。要求:使用运算符重载。#include<iostream>using namespace std;class Date{public: Date(int y, int m, int d) { ...原创 2019-04-23 17:14:42 · 6090 阅读 · 1 评论 -
定义一个Complex类,为其定义构造函数,析构函数,
定义一个Complex类,为其定义构造函数,析构函数,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式。#include<iostream>using namespace std;class Complex{public: Complex() { ...原创 2019-04-23 17:17:04 · 2824 阅读 · 0 评论 -
多重继承派生类的构造函数
例题:声明一个教师teacher类,和一个学生类Student类用多重继承方式声明一个在职研究生Graduate派生类,在定义派生类对象时给出初始化的数据,然后输出这些数据#include<iostream>#include<string.h>using namespace std;class Teacher{public: Teacher(...原创 2019-04-24 20:47:45 · 1397 阅读 · 0 评论 -
虚基类的简单应用举例
当在多条继承路径上有一个公共的基类,在这些路径中的某几条汇合处,这个公共的基类就会产生多个实例(或多个副本),若只想保存这个基类的一个实例,可以将这个公共基类说明为虚基类。 在继承中产生歧义的原因有可能是继承类继承了基类多次,从而产生了多个拷贝,即不止一次的通过多个路径继承类在内存中创建了基类成员的多份拷贝。虚基类的基本原则是在内存中只有基类成员的一份拷贝。这样,通过把基类继承声...原创 2019-04-24 21:34:06 · 1244 阅读 · 0 评论 -
多态性
#include<iostream>using namespace std;class Point{public: Point(float x = 0, float y = 0); //有默认参数的构造函数 void setPoint(float, float); //设置坐标值 float getX() const {return x;...原创 2019-05-11 17:49:01 · 163 阅读 · 0 评论 -
多层派生时的构造函数
一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构例:多层派生情况下派生类的构造函数#include<iostream>#include<string>using namespace std;class Student{public: Student(int n, string nam) { ...原创 2019-04-21 19:23:24 · 1774 阅读 · 0 评论 -
有子对象的派生类的构造函数
例:包含子对象的派生类的构造函数里面有新技能哦!!!#include<iostream>#include<string>using namespace std;class Student{public: Student(int n, string nam) { num = n; name = nam...原创 2019-04-21 17:32:26 · 915 阅读 · 1 评论 -
内置函数
调用函数时需要一定的时间,如果有些函数频繁调用,则累计所用时间会很长,从而降低程序的执行效率,C++提供一种提高效率的方法即在编译时将所调用函数代码嵌入主调函数中,这种嵌入到主调函数中的函数称为内置函数又称内嵌函数,在有些书中把他称为内联函数。例:将函数指定为内置函数#include<iostream>using namespace std;inline int ...原创 2019-03-10 11:15:21 · 117 阅读 · 0 评论 -
作用域运算符::
#include<iostream>using namespace std;float a = 13.5;int main(void){ int a = 5; cout << a << endl; cout << ::a << endl; return 0;}此例中::a表示全局作用域中...原创 2019-03-10 11:19:50 · 671 阅读 · 0 评论 -
字符串变量的运算
例:输入3个字符串,要求字母由大到小顺序输出#include<iostream>#include<string>using namespace std;int main(void){ string string1, string2, string3, temp; cout << "please input three strin...原创 2019-03-10 11:27:50 · 593 阅读 · 0 评论 -
动态分配/撤销内存的运算符new和delete
例:用new开辟空间存放一个结构体变量,delete运算符撤销所开辟的空间#include<iostream>#include<string.h>using namespace std;struct Student{ char name[10]; int num; char sex;};int main(void){ ...原创 2019-03-10 11:33:40 · 348 阅读 · 0 评论 -
用构造函数实现数据成员的初始化
c++提供了构造函数(constructor)来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。#include<iostream>using namespace std;class Time{public: Time()//定义定义构造函数,函数名与类名相同 { ...原创 2019-03-20 22:22:42 · 2619 阅读 · 0 评论 -
利用析构函数进行清理工作
析构函数(destructor)也是一个特殊的成员函数,它的作用与构造函数相反,它的名字时类名的前面加一个“~”符号。在C++中“~”是位取反运算符,从这点也可以想到:析构函数是与构造函数作用相反的函数当对象的生命期结束时,会自动执行析构函数。#include<iostream>#include<string>using namespace std;...原创 2019-03-20 22:51:49 · 521 阅读 · 0 评论 -
对象数组
#include<iostream>using namespace std;class Box{public: //声明有默认参数的构造函数,用参数初始化表对数据成员初始化 Box(int h = 10, int w = 12, int len = 15) :height(h), width(w), length(len){} int vo...原创 2019-03-20 23:08:33 · 96 阅读 · 0 评论 -
统计学生平均成绩,使用静态成员函数
/**这里有新技能哦**/#include<iostream>using namespace std;class Student{public: Student(int n, int a, float s):num(n), age(a), score(s){} //定义构造函数 void total(); static float aver...原创 2019-04-06 17:44:48 · 2099 阅读 · 0 评论 -
程序模拟数字时钟
一个电子公司要生产数字时钟,需开发一个程序模拟数字时钟。时钟以秒为单位更新时间。当第一次启动时钟的时候,要提示用户设定当前的时间值。用户要键入一个1-12的数字代表小时,两个不大于59的数字分别代表分和秒值。无效的时分秒将分别被设定为12、00、00。为了加速程序的开发,公司做了一个简单的模拟程序,显示12:00:00—11:59:59范围内的时间值。但没有表明是AM还是PM。#...原创 2019-04-15 23:21:56 · 1409 阅读 · 0 评论 -
用流对象成员函数控制输出数据格式
/**用流对象的成员函数控制输出数据格式**/#include<iostream>using namespace std;int main(void){ int a = 21; cout.setf(ios::showbase); cout << "dec:" << a << endl; cout...原创 2019-05-11 18:28:53 · 770 阅读 · 0 评论