函数定义期望 通过cout<<对象,打印出复数的实部和虚部,这样一来,就需要重载cout类的位移<<运算函数,但是我们并不能拿到cout源码,在visual studio我们看到的也仅仅是他的定义 若想访问c1的私有属性,则应当声明为友元函数 通过定义可以看出cout类的返回值是ostream类型的 ...
分类:
编程语言 时间:
2019-12-15 16:48:27
阅读次数:
242
C++运算符重载总结(真的很详细了w(?Д?)w) 概述 运算符重载可以使得一些特殊类型参与运算,我是这样理解的。 使用友元形式的运算符重载 双目运算符 所以加减乘除就可以这样来进行声明了 单目运算符 如 等。下面以 来进行一个示例: 总结: 1. 运算符重载可以返回任何类型,甚至是 类型,但是通常 ...
分类:
编程语言 时间:
2019-12-07 21:33:53
阅读次数:
126
#include <iostream> // overloading "operator = " inside class // = 是一元操作符。不写,编译器会提供 默认 拷贝赋值函数。可以通过显式“=delete”来禁用默认。对于复杂class的默认=可能会造成问题,请特别注意。 ///////... ...
分类:
编程语言 时间:
2019-12-01 12:08:34
阅读次数:
90
友元函数: 测试: cpp include include / 友元函数 / using namespace std; class Match; class Time { friend Match;//友元类的声明 public: Time(int hour, int min, int sec); ...
分类:
编程语言 时间:
2019-11-16 23:05:17
阅读次数:
58
第十一章 静态成员和友元 11.1 静态成员 1.C++类当中的静态数据成员仍借用保留字static,但是与之前的静态全局变量,静态局部变量以及静态函数没有关系。 2.静态数据成员不占用具体对象的数据空间。 3.静态数据成员的创建和销毁处分权不属于任何对象。对象有权利读和写静态成员。静态成员应该在创 ...
分类:
编程语言 时间:
2019-11-10 13:30:42
阅读次数:
93
六大设计原则1. 单一职责原则:对于一个类,应该只有一个引起它变化的原因;【功能内聚】2. 里氏代换原则:子类必须能够替换掉它们的父类型;【减小继承耦合】3. 开放-封闭原则:对于扩展是开放的;对于修改是封闭的。4. 依赖倒置原则:程序的高层模块不应该依赖于底层模块,两者应依赖于抽象;抽象不应该依赖 ...
分类:
其他好文 时间:
2019-11-02 00:40:31
阅读次数:
137
多态和重载 一:多态 1:定义:多态是指同样的消息被不同类型的对象接收时导致的不同行为。 消息是指对类的成员函数的调用。不同行为是指不同的实现,即调用了不同的函数。 2:多态的类型: 1:专用多态 : ? 1:重载多态 ? 2:强制多态 2:通用多态: ? 3:包含多态 ? 4:参数多态 3:多态的 ...
分类:
其他好文 时间:
2019-10-27 14:25:31
阅读次数:
91
多态的类型 :分为4类,重载多态,强制多态,包含多态,参数多态。 以前所学过的普通函数的重载也属于重载多态。强制多态是指将一个变元的类型加以变化,以符合一个函数或操作的要求,比如int型与float型相加,要先进行类型转换。 多态的实现 :分为两类,编译时的多态与运行时的多态。 前者在编译的过程中确 ...
分类:
其他好文 时间:
2019-10-27 00:43:33
阅读次数:
87
一、友元: 1、类的私有成员只有在类的内部访问,类的外部函数不能访问他们。 2、当一个函数定义为类的友元函数,这时函数就可以访问该类的私有成员。同时可以将类B定义为本类A的友元类,这样B类就可以访问类A的任何成员 3、友元函数用friend来声明,基本格式为: friend 函数原型; 4、友元函数 ...
分类:
编程语言 时间:
2019-10-25 11:38:58
阅读次数:
76
1:String类型 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 //初始化方法 6 string s1 = "hello";//默认构造方法 7 string s2(s1);//将s2初始化为s1的一个副本 8 s ...
分类:
其他好文 时间:
2019-10-19 22:16:14
阅读次数:
138