5 lianghe_work

尚未进行身份认证

我要认证

热爱linux

等级
TA的排名 4k+

50_菱形继承

具有公共祖先 的多继承class Animal{public: int data;};class Sheep:public Animal{public:};class Tuo:public Animal{public:};class SheepTuo:public Sheep,public Tuo{public:};int main(int argc, char *argv[]){ SheepTuo st; //SheepTuo 从Shee

2020-05-21 21:46:41

49_多继承

多继承的格式class 子类: 继承方式1 父类名1,继承方式2 父类名2,继承方式3 父类名3,....{};//表示子类 是由 父类名1,父类名2,父类名3...共同派生出来class Base1{public: int a;};class Base2{public: int b;};class Son:public Base1,public Base2{ //Son类 拥有了a b};int main(int argc, char

2020-05-21 21:17:08

48_继承中的静态成员特性

class Base{public: //静态成员属于类 而不属于对象 static int num; static int data; static void showData(void);};int Base::num = 100;int Base::data = 200;class Son:public Base{public: static int data;//父和子类 静态成员 同名 static void showDat.

2020-05-21 21:15:02

47_父类和子类的同名 成员函数 处理

案例:1子类继承父类所有成员函数 和成员变量class Base{public: void func(void) { cout<<"父类中的void func"<<endl; } void func(int a) { cout<<"父类中的int func a = "<<a<<endl; }};class Son:public Base{public

2020-05-21 21:12:38

46_父类和子类的同名 成员变量 处理

1、当 父类和子类 成员变量同名时 在子类就近原则 选择本作用域的子类成员2、如果在子类中 必须使用父类中的同名成员 必须加上父类的作用域。class Base{ //父类的私有数据 一旦涉及继承 在子类中不可见public: int num;public: Base(int num) { this->num = num; cout<<"Base有参构造int"<<endl; } ~

2020-05-19 21:37:08

45_详解 子类中的构造

1、子类会默认调用 父类的 无参构造2、子类 必须显示 使用初始化列表 调用 父类的有参构造调用形式:父类名称。Son(int a,int b):Base(a),b(b){ //this->b = b;}class Base{private: int a;public: Base() { cout<<"父类的无参构造函数"<<endl; } Base(int a) {

2020-05-19 21:29:15

44_子类中 有父类、对象成员 构造和析构的顺序

父类的构造和析构 对象成员的构造和析构 子类自身的构造和析构总结:(重要)class Other{public: Other() { cout<<"对象成员的构造函数"<<endl; } ~Other() { cout<<"对象成员的析构函数"<<endl; }};class Base{public: Base() { co

2020-05-19 21:26:01

43_继承中的构造和析构顺序

class Base{public: Base() { cout<<"父类的无参构造函数"<<endl; } ~Base() { cout<<"父类中的析构函数"<<endl; }};class Son:public Base{public: Son() { cout<<"子类的无参构造"<<endl; .

2020-05-13 22:49:25

42_继承的内层接结构

当前演示在vstudio中class Base{public: int a;protected: int b;private: int c;};class Son :public Base{public: int d; int e;};int main(int argc, char* argv[]){ cout << sizeof(Son) << endl; return 0;}步骤:

2020-05-13 22:46:41

41_继承和派生的概述

1、继承和派生的概述继承的优点:减少代码的冗余 提高代码的重用性2、继承的格式派生类定义格式: Class 派生类名 : 继承方式 基类名{ //派生类新增的数据成员和成员函数 }; class 子类: 继承方式 父类名{ //子类新增的数据成员和成员函数 };继承方式分类:public : 公有继承 (重要)private : 私有继承 protected : 保护继承父类个数分类:单继承:指...

2020-05-13 22:36:54

40_不要重载&&、||

不要重载&&、|| 因为 用户无法实现 && ||的短路特性。&& 短路特性: A && B 如果A为假 B将不会执行|| 短路特性: A || B 如果A为真 B将不会执行#include <iostream>using namespace std;class Complex{public: Complex(int flag){ this->flag = flag; }

2020-05-12 23:04:48

39_函数调用符()的重载

#include <iostream>using namespace std;class Fun{public: int my_add(int x,int y) { return x+y; } //重载() //第一个()是重载的符号 第二个()是标明要传参 int operator()(int x,int y) { return x+y; }};void test01(){ .

2020-05-12 23:01:53

38_等于和不等于(==、!=)运算符重载

//重载== ==出现在判断语句中 bool operator==(Person &ob) { if(strcmp(this->name, ob.name) == 0) { return true; } return false; } //重载!= !=出现在判断语句中 bool operator!=(Person &ob) { .

2020-05-12 22:59:40

37_重载=运算符

前提1:类中 没有指针成员 不需要重载=运算符(默认的浅拷贝就可以完成)#include <iostream>using namespace std;class Person{private: int a; int b;public: Person():a(0),b(0) { cout<<"无参构造"<<endl; } Person(int a, int b):a(a),b(b) {

2020-05-11 22:17:08

36_重载指针运算符* ->

#include <iostream>using namespace std;class Person{private: int num;public: Person(int num):num(num) { //this->num = num; cout<<"有参构造num = "<<num<<endl; } void showPerson(void) { .

2020-05-11 22:13:32

35_重载自增运算符

1、可重载的运算符2、重载自增 或自减 ++ --运算符operator++编译器看到++a(前置++),它就调用operator++(a),当编译器看到a++(后置++),它就会去调用operator++(a,int).#include <iostream>using namespace std;class Data{ friend ostream& operator<<(ostream &out, Data &ob);

2020-05-11 21:37:39

34_重载加法运算符

1、全局函数作为友元 完成运算符重载+1+1 这种情况下 不需要重载 编译器能够计算#include <iostream>#include<string.h>using namespace std;class Person{ //设置成友元函数 在函数内 访问Person类中的所有数据 friend ostream& operator<<(ostream &out, Person &ob); friend

2020-05-08 20:37:49

33_运算符输出重载

1、重载运算符的概述运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型运算符重载的目的:简化操作 让已有的运算符 适应适应不同的数据类型。语法:函数的名字由关键字operator及其紧跟的运算符组成比如:重载+运算符 ==>operator+ 重载=号运算 ==>operator=注意:重载运算符 不要更改 运算符的本质操作(+是数据的相加 不要重载成相减)2、重载<<运算符#include <iostream&gt

2020-05-08 20:28:19

32_一个类整体作为另一个类的友元

一个类的所有成员函数 访问 另一个类的私有数据#include <iostream>using namespace std;class Room;//Room向前声明class GoodGay{public: void visit1(Room &room);//此处的Room 被上方 class Room void visit2(Room &room);};class Room{ //将GoodGay作为Room的友元

2020-05-08 20:08:19

31_友元函数

c++允许 友元 访问 私有数据。友元的语法:friend关键字只出现在声明处 其他类、类成员函数、全局函数都可声明为友元 友元函数不是类的成员,不带this指针 友元函数可访问对象任意成员属性,包括私有属性1、普通全局函数 作为 类的友元//房间类class Room{ //将goodGayVisit作为类的友元函数 //goodGayVisit 访问 类中...

2020-04-29 20:55:55

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。