c++构造函数得到xtree错误
C++ constructor gets xtree error
我试图构建我的一个类,但我得到一个xtree违规错误。下面是我构造类的方法
Game.h
#pragma once
#include "ImageService.h"
class Game
{
private:
IntroState introState;
public:
ImageService imageService;
Game();
~Game();
};
game.cpp
Game::Game() : introState(imageService)
{
}
然后转到introState
IntroState.h
<标题> 杂注一次#include "State.h"
class IntroState : public State
{
public:
IntroState(ImageService &imageService);
~IntroState();
GameState objectState;
};
IntroState.cpp
#include "IntroState.h"
IntroState::IntroState(ImageService& imageService) : State (imageService)
{
}
IntroState::~IntroState()
{
}
然后转到State
State.h
#pragma once
#include "ImageService.h"
class State
{
private:
ImageService imageService;
public:
State( ImageService& is );
~State();
};
State.cpp
#include "State.h"
State::State(ImageService& _imageService)
{
imageService = _imageService;
}
State::~State()
{
}
然后传递给图像服务的构造函数
ImageService.h
#pragma once
#include <map>
#include "Enums.h"
#include "Sprite.h"
class ImageService
{
public:
ImageService();
~ImageService();
std::map<ImageName, Sprite> Images;
};
ImageService.cpp
ImageService::ImageService()
{
Images = std::map<Image, sf::Texture>();
}
ImageService::~ImageService()
{
}
下面是它运行和崩溃的步骤
1 : Game constructor
2 : IntroState constructor
3 : State constructor
4 : ImageService constructor
5 : Images are then set to an empty map
6 : Trying to assign ImageService reference to State
7 : Xtree error shown (Unhandled exception at 0x012BF147 in Dungeon_Wraight.exe: 0xC0000005: Access violation reading location 0x00000004.)
这是xtree
中的函数template<class _Moveit>
void _Copy(const _Myt& _Right,
_Moveit _Movefl)
{ // copy or move entire tree from _Right
_Root() = _Copy_nodes(_Right._Root(), this->_Myhead, _Movefl); //Here is the error
this->_Mysize = _Right.size();
if (!this->_Isnil(_Root()))
{ // nonempty tree, look for new smallest and largest
_Lmost() = this->_Min(_Root());
_Rmost() = this->_Max(_Root());
}
else
{ // empty tree, just tidy head pointers
_Lmost() = this->_Myhead;
_Rmost() = this->_Myhead;
}
}
为什么我得到这个错误?
标题>
Xtree实现了std::set
和std::map
的部分内存和时间特性。知道了这一点,错误可以出现在你的代码的两个地方:
-
ImageService
实例在创建IntroState
实例之前不能在Game
中创建 -
images
初始化错误。如果我正确地知道在SFMLsf::Texture
不继承Sprite
。这是精灵的成员。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- VC XTREE内部标头的语法错误,带有QT/Boost Project
- C++ 集<>类对象。使用自己的比较器给出来自功能,xtree等的错误 JUNK
- c++构造函数得到xtree错误