- 博客(30)
- 收藏
- 关注
原创 面向抽象类编程案例——计算程序员工资
#include using namespace std;class programmer{public:virtual void getSal() = 0;};class junior_programmer :public programmer{public:junior_programmer(char* name, char* job, int sal){this->name = name;this->job = job;this->sal = sal;}
2020-07-14 22:47:05 400
原创 抽象类在多继承中的应用
抽象类在多继承中的应用的案例:#include using namespace std;class interface1{public:virtual int add(int a, int b)=0;virtual void print() = 0;};class interface2{public:virtual int mcl(int a, int b) = 0;virtual void print() = 0;};class Parent{public:int g.
2020-07-14 20:47:39 265
原创 纯虚函数
纯虚函数做接口的案例:#include using namespace std;class Area{public:virtual void calculate() = 0;};class Circle:public Area{public:Circle(int a, int b){this->a = a;this->b = b;}virtual void calculate(){cout << “圆的面积是” << 3.14 * a .
2020-07-14 19:41:00 545
原创 父类指针和子类指针的步长
结论:多态是用父类指针指向子类对象 和 父类指针++ 是两个不同的概念案例:#include using namespace std;class Parent{public:Parent(int a=0){this->a = a;}virtual void print(){cout << “这是父类” << endl;}private:int a;};class Child:public Parent{public:Child(in
2020-07-14 17:37:32 129
原创 重载、重写、重定义、名称覆盖
1、子类和父类中的函数名相同,函数参数相同,没有virtual关键字,重定义2、子类和父类中的函数名相同,函数参数相同,有virtual关键字, 重写3、子类和父类中的函数名相同,函数参数不同,名称覆盖,不会发生重载4、在同一个作用域内,函数名相同,函数参数不同(返回值类型不影响),称为重载...
2020-07-12 18:29:00 110
原创 彻底删除ue4中c++类文件的方法
第一步:找到自己的工程,打开source文件夹打开名字为工程名的文件夹(这里是ttt)选中并删除想要删除的c++类(这里是MyObject.h和MyObject.cpp)第二部:回到最初的工程文件夹,将Binaries文件夹整个删除第三步:右键.uproject文件,点击Generate Visual Studio project files等待片刻后,右键.uproject文件,点击open选择是最后,可喜可贺,删除完成了!!!...
2020-07-11 17:37:04 2187
原创 二义性和虚继承
如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性(这就是虚继承virtual的唯一应用场景)#include using namespace std;class A{public:int a;void print(){cout << “a:” << a << endl;}};class B1:virtual public A{};class B2:virtual public A
2020-07-08 16:22:00 133
原创 c++继承的static关键字
1、拥有static关键字的变量遵守派生类的访问控制规则2、父类中的static修饰的成员变量,在子类继承之前必须进行初始化,否则子类继承会报错;#includeusing namespace std;class A{public:A(){cout<<“A的构造函数”<<endl;}public:static int a;int b;public:void get(){cout<<"A的b: "<<b<<endl;
2020-07-08 14:52:15 246
原创 继承中的同名成员变量和同名成员函数
一句话:派生类的同名成员屏蔽基类同名成员,转而调用自身成员。 若想调用基类同名成员,需要加上域操作符(::) 举例:class Parent { public: int a; void printP() { cout<<"a"<<a<<endl; } }; class Child:public Parent { public: int a;
2020-07-07 18:50:22 634
原创 c++继承:判断一句话是否能被访问
三看原则:1、看调用语句(这句话写在子类的内部还是外部)2、看子类如何从父类继承(public、private、protected)3、看父类中的访问级别(public、private、protected)注意:父类中的私有对象(private),无论以何种方法(public、private、protected)被子类继承,子类都不可调用...
2020-07-07 13:44:10 65
原创 c++继承的语法与重要说明
语法:class 派生类名:继承方式 基类名 { 成员声明; }说明:1、子类拥有父类的所有成员变量和成员函数(除了构造和析构函数)2、子类就是一种特殊的父类3、子类对象可以当作父类对象使用4、子类可以拥有父类没有的方法和属性...
2020-07-06 21:31:29 122
原创 将类中的private变量露出来
变成public的函数即可例:class A//定义一个类{private:int b;public:int m_b(){return b;}}//调用void main(){int c=A.m_b();//想要实现c=b}
2020-07-04 09:46:40 157
原创 重载等号操作符
结论:先释放旧的内存,在返回一个引用Name &operator=(Name &obj1){//先释放旧的内存if(m_p!=NULL){delete []m_p;m_len=0;}//根据obj1分配内存大小this.m_len=obj1.m_len;this.m_p=new char[m_len+1];//把obj1赋值strcpy(m_p,obj1.m_p);return *this;}...
2020-07-02 04:50:07 144
原创 友元函数实现左移右移操作符重载
注意:输入输出操作符的重载只能依靠友元函数(而不能用成员函数)ostream& operate<<(ostream &out,Complex &c1)//函数返回值当左值需要返回一个引用 {out<<“12345,生活真是苦”<<endl;return out;}...
2020-07-01 10:43:36 133
原创 全局函数和成员函数完成一元操作符重载
一、全局函数重载++(前置)Complex & operator++(Complex &c1){c1.a++;//由于用到了类中的私有成员,该函数需要成为类的友元函数c1.b++;return c1;}二、成员函数重载++(前置)Complex & operator++(){this->a++;this->b++;return *this;}三、全局函数重载++(后置)Complex operator++(Complex &c1,in
2020-07-01 09:50:16 173
原创 c++运算符重载
一、设计原因:让自定义数据类型有机会进行运算符操作二、本质:运算符重载的本质是函数调用三、重载方法:例1、通过全局函数方法完成+操作符重载Complex operator+(Complex &c1,Complex &c2)//函数声明{…}int main()//函数调用分析{Complex c1(1,2),c2(3,4);Complex c3=c1+c2;//相当于调用函数Complex c3=operator(c1,c2);}例2、通过类成员函数方法完成-操
2020-07-01 02:45:33 123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人