我正在尝试构建我的代码,就像这个主要的< - 游戏< - 播放器.
如果我写在主要:
player* P;
P = new player;
P->move();
Run Code Online (Sandbox Code Playgroud)
一切正常,但在尝试将此代码移入游戏组件时,我遇到了问题.
以下是我需要帮助的game.cpp的部分内容.
#include "game.h"
#include <string>
using namespace std;
game::game(){
player* P;
P = new player;
};
void game::playerStuff(){
P->move(); //c2227+C2065
};
Run Code Online (Sandbox Code Playgroud)
这是game.h的一部分
#include "player.h"
class game {
public:
game();
void playerStuff();
Run Code Online (Sandbox Code Playgroud) 为简洁起见,这是简化的层次结构:
class IBase
{
public:
virtual ~IBase() = 0 { };
}; // eo IBase
class IDerived : public virtual IBase
{
public:
virtual ~IDerived() = 0 { };
}; // eo IDerived
class Base : public virtual IBase
{
public:
Base() { };
virtual ~Base() { };
}; // eo Base
class Derived : public IDerived
, public Base
{
}; // eo Derived
Run Code Online (Sandbox Code Playgroud)
并且有一个函数来确定指向类的特定指针是否实现了传递的"接口":
template<typename T>
bool same(IBase* base)
{
if(std::is_base_of<T, decltype(*base)>::value)
return true;
return false;
};
Run Code Online (Sandbox Code Playgroud)
样本: …
我们计划保护我们的应用程序,以便其他程序员无法反编译.我知道有些工具可以像JetBrains dotPeek那样反编译一个dll和exe.是否有可以实现这一目标的工具或程序.
如果a vector包含一堆使用new然后解除引用而分配的元素,那么在vector删除这些元素时会释放这些元素的内存吗?例如:
vector<Obj> a = *(new vector<Obj>());
a.push_back(*(new Obj()));
delete &a;
Run Code Online (Sandbox Code Playgroud)
Obj创建的新内容是否已取消分配?
如果我将现有的DataMember属性作为WCF合同的一部分从Boolean更改为bool,那么这是否被视为更改/违反合同?
这是我的代码:
rename("tmp.png", Filename);
Run Code Online (Sandbox Code Playgroud)
重命名函数中的第二个参数是一个字符串.(用户决定名称是什么)如何正确编码,以便将tmp.png重命名为用户输入的内容?
我的导师说要以某种方式使用c_str,但我不确定如何.
这是我的第一篇文章,让我知道,如果你很难理解,或者如果我以某种方式弄错了..