- 博客(64)
- 收藏
- 关注
原创 虚幻函数
在TriggerVolume中有函数IsOverLappingActor()GetOwner()获取当前对象(要加头文件#include “GameFramework/Actor.h”)GetWorld()获取world当中的东西(再衍生要加头文件#include “Engine/World.h”)GetFirstPlayerController()获取当前玩家控制(在GetWorld()里面)GetPawn()获取当前人物(在GetFirstPlayerController()里面)IsOver
2020-08-29 19:24:01
587
1
原创 虚幻宏
BlueprintReadWrite可在蓝图系统中读和写(用在变量上)BlueprintCallable可在蓝图 系统中被调用(用在函数上)BlueprintReadOnly只能在蓝图中被读BlueprintWriteOnly只能在蓝图中被改写Category=""将定义的东西放在“”中的分类下UE_LOG(LogTemp,Log,TEXT(“Hello World!”));在虚幻的报错日志中报错(有两个逗号,两逗号中间的是报错等级log显示白字warning显示橙字error显示红字,右逗号右边
2020-08-25 17:43:41
306
原创 函数指针做函数参数的思想构析
#include #include <string.h>#include <stdlib.h>using namespace std;int add(int a, int b)//子任务的实现者{printf(“func add() do…”);return a + b;}int add2(int a, int b)//子任务的实现者{printf(“func add2() do…”);return a + b;}int add3(int a, int b
2020-08-11 02:28:13
147
原创 函数指针语法梳理
#include #include <string.h>#include <stdlib.h>using namespace std;//函数指针语法梳理//1、如何定义一个函数类型//2、如何定义一个函数指针类型//3、如何定义一个函数指针(指向一个函数的入口地址)int add(int a, int b){printf(“func add…\n”);return a + b;}void main(){add(1, 2);//直接调用//函数名就是函数
2020-08-11 01:22:27
199
原创 数组指针语法梳理
#include #include <string.h>#include <stdlib.h>using namespace std;//数组类型基本语法知识梳理void main(){int a[10];//a代表的是数组首元素的地址,&a代表的是整个数组的地址 a+1步长是4 &a+1步长是40//定义一个数组类型typedef int(MyArray)[10];MyArray testarray;testarray[0] = 10
2020-08-11 00:41:36
289
原创 面向抽象类编程案例——计算程序员工资
#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
445
原创 抽象类在多继承中的应用
抽象类在多继承中的应用的案例:#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
318
原创 纯虚函数
纯虚函数做接口的案例:#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
591
原创 父类指针和子类指针的步长
结论:多态是用父类指针指向子类对象 和 父类指针++ 是两个不同的概念案例:#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
156
原创 重载、重写、重定义、名称覆盖
1、子类和父类中的函数名相同,函数参数相同,没有virtual关键字,重定义2、子类和父类中的函数名相同,函数参数相同,有virtual关键字, 重写3、子类和父类中的函数名相同,函数参数不同,名称覆盖,不会发生重载4、在同一个作用域内,函数名相同,函数参数不同(返回值类型不影响),称为重载...
2020-07-12 18:29:00
136
原创 彻底删除ue4中c++类文件的方法
第一步:找到自己的工程,打开source文件夹打开名字为工程名的文件夹(这里是ttt)选中并删除想要删除的c++类(这里是MyObject.h和MyObject.cpp)第二部:回到最初的工程文件夹,将Binaries文件夹整个删除第三步:右键.uproject文件,点击Generate Visual Studio project files等待片刻后,右键.uproject文件,点击open选择是最后,可喜可贺,删除完成了!!!...
2020-07-11 17:37:04
2400
原创 二义性和虚继承
如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性(这就是虚继承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
184
原创 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
287
原创 继承中的同名成员变量和同名成员函数
一句话:派生类的同名成员屏蔽基类同名成员,转而调用自身成员。 若想调用基类同名成员,需要加上域操作符(::) 举例:class Parent { public: int a; void printP() { cout<<"a"<<a<<endl; } }; class Child:public Parent { public: int a;
2020-07-07 18:50:22
676
原创 c++继承:判断一句话是否能被访问
三看原则:1、看调用语句(这句话写在子类的内部还是外部)2、看子类如何从父类继承(public、private、protected)3、看父类中的访问级别(public、private、protected)注意:父类中的私有对象(private),无论以何种方法(public、private、protected)被子类继承,子类都不可调用...
2020-07-07 13:44:10
90
原创 c++继承的语法与重要说明
语法:class 派生类名:继承方式 基类名 { 成员声明; }说明:1、子类拥有父类的所有成员变量和成员函数(除了构造和析构函数)2、子类就是一种特殊的父类3、子类对象可以当作父类对象使用4、子类可以拥有父类没有的方法和属性...
2020-07-06 21:31:29
159
原创 将类中的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
203
原创 重载等号操作符
结论:先释放旧的内存,在返回一个引用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
184
原创 友元函数实现左移右移操作符重载
注意:输入输出操作符的重载只能依靠友元函数(而不能用成员函数)ostream& operate<<(ostream &out,Complex &c1)//函数返回值当左值需要返回一个引用 {out<<“12345,生活真是苦”<<endl;return out;}...
2020-07-01 10:43:36
169
原创 全局函数和成员函数完成一元操作符重载
一、全局函数重载++(前置)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
216
原创 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
177
原创 友元函数
一般来说,类的私有成员(private)不能在类外被调用。但可以通过使用友元函数破坏这个规则。格式:class A{public:friend void FriendFun(A* pa,int b);//说明语句位置与访问描述无关 (可 以在private或public下,都一样)private:int a;} //调用 void FriendFun(A* pa,int b) { pa->a=b;//若不是友元函数,则此行程序会报错 }...
2020-06-30 21:02:02
592
原创 全局函数和成员函数之间的转化
1、把全局函数转化成成员函数,通过this指针隐藏左操作数如:全局函数Test Add(Test &t1,Test &t2)它的成员函数形式Test Add(Test &t2)成员函数的应用Test K=t1.Add(t2)2、把成员函数转化为全局函数,多了一个参数如:成员函数void PrintAB(){cout<<this.a<<endl;}它的全局函数形式void PrintAB(Test *pthis){cout<a<
2020-06-29 01:37:05
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人