01-Hello World
新建工程
// 03-Helloworld.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World" << endl; //endl =end line 代表换行
int a;
cin>> a ;
cout<< a<<endl;
return 0;
}
2- auto关键字
auto关键字是能识别你的类型
auto i=20; auto就是int型
3 函数要放在 mian函数之前
如果放在mian函数之后会找不到这个函数
不过这样放在上面声明一下也能执行
#include "stdafx.h"
#include <iostream>
using namespace std;
int add(int, int);
int main()
{
cout << "Hello World" << endl;
int c = add(2, 4);
return NULL;
}
int add(int a, int b) {
return a + b;
}
4 指针
声明一个int a =100;
通过a 可以访问到内存的数据,但是内存地址是不能修改的
指针就是用来存贮某个变量的内存地址的,
内存地址是16进制的
指针实例
// 04-指针.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<String>
using namespace std;
void change(int& a, int& b)
{
a = 100;
b = 200;
}
int main()
{
int a = 234;
int b = 100;
string str = "------";
//定义指针
//pa 是int类型的指针
int* pA; //或者int * 或者 int *pA
//把A的地址赋值给pa & 取地址符
pA = &a;
pA = &b;
cout << pA << endl; //等于16进制的地址
cout << *pA << endl; //*pA 代表地址中存的数据
*pA = 300;//*pA 代表 pA内存地址中的数据修改为300 也是就b=300
void *p1; //指向空类型的指针
p1 = &a;
p1 = &str;
//p1被两种类型赋值。所以自己分辨不出属于那种类型 需要强制转型
cout << (int*) p1 << endl;
//空类型的指针
int *p2 = NULL;
p2 = &a;
//指针 * 引用& reference
int * o1 = &a;
cout << o1 << endl;
int *o2 = &b;
//引用的声明
int &r1 = a;
//r1 现在引用a的地址
r1 = a;
cout << r1 <<"a"<< a << endl;
r1 = b;
//这时候 a的引用也会被修改成b的引用 a 的值也会修改为b的值
//r1还是指向a变量只是里面的数据修改了 a=b
cout << r1 << "a" << a << endl;
b = 400;
//a的值是不会发生改变
cout << r1 << "a" << a << endl;
//对引用的类型进行赋值相当于修改原变量
int c = 0, d = 0;
change(c, d);
cout << c << d<< endl;
return 0;
}
5- C++类
分为h 文件 (用来声明)
cpp文件 (用来放置实现)
类的声名
.h文件
//类的定义
class NameXXXX
{
//类 的成员
public:
int HP;
int Damage;
void Attack();
void TakeDamage();
NameXXXX(int hp,int damage);
NameXXXX();
private:
};
.cpp文件
#include "stdafx.h"
NameXXXX::NameXXXX() {
HP = 12;
Damage = 3;
}
NameXXXX::NameXXXX(int hp, int damage) {
HP = hp;
Damage = damage;
}
void NameXXXX:: Attack() {
cout << "攻击" << endl;
}
void NameXXXX::TakeDamage() {
cout << "掉血" << endl;
}
使用类 在main方法中
NameXXXX nameXXX1 = NameXXXX(12, 2);
NameXXXX nameXXX2 = NameXXXX ();
nameXXX1.HP = 100;
cout << nameXXX1.HP << endl;
类 的继承
.h文件 继承自NameXXXX
重新写一个构造函数
#pragma once
#include "Enemy.h"
class NameXX : public NameXXXX
{
public:
NameXX();
NameXX(int hp,int damage);
~NameXX();
};
.cpp文件重写 父类的构造函数
#include "stdafx.h"
#include "NameXX.h"
//重写父类的构造函数
NameXX::NameXX(int hp, int damage) :NameXXXX(hp, damage) {
}
NameXX::NameXX()
{
}
NameXX::~NameXX()
{
}
main函数 入口
NameXXXX nameXXX1 = NameXXXX(12, 2);
NameXXXX nameXXX2 = NameXXXX ();
NameXX namexx1 = NameXX(12, 3);
cout << nameXXX1.GetHP() << endl;
cout << namexx1.GetHP() << endl;
虚幻4 拖拽在C++组件面板拖拽赋值
UPROPERTY(EDitAnywhere) //设置为外部拖拽赋值
ATriggerVolume * TriggerValue;
判断指针是否等于空
if(TriggerValue==nullptr){}
debug日志
//%s 是字符串组拼
UE_LOG(LogTemp, Warning, TEXT("HELLO WORLD %s"), *Owner->GetName() );