C++ 标头中的编译器错误,"was not declared in this scope"
compiler error in c++ header, "was not declared in this scope"
当我尝试编译我的头文件时,编译器告诉我" 'map'没有在这个范围内声明"(下面的行public:
)。为什么?
#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>
#include <fstream>
#include <cctype>
#include <string>
#include <vector>
#ifndef TILEMAP_H
#define TILEMAP_H
class TileMap{
public:
std::vector<std::vector<sf::Vector2i>> map;
std::ifstream file;
TileMap(std::string name);
sf::Sprite tiles;
sf::Texture tileTexture;
void update();
void draw(sf::RenderWindow* window);
};
#endif
两个">"之间应该有一个空格,否则编译器会将其与">>"运算符混淆。所以这样做:
std::vector<std::vector<sf::Vector2i> > map;
这就是为什么如果你想在另一个类型中使用一个 STL 类型,那么 typedef STL 类型总是一个好主意。所以最好这样做:
typedef std::vector<sf::Vector2i> Mytype;
std::vector<Mytype> map;
这样,您就不会因为忘记在">"之间放置空格而出现编译错误。
相关文章:
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 删除分配的 (?) 指针时"Pointer being freed was not allocated"
- 类中的数组变量C++导致"was not declared in this scope"实现文件的一个函数中错误,但在构造函数中不会导致错误
- 如何解决"cout was not declared in this scope"错误?
- 为什么程序显示我"was not declared in this scope"?
- 为什么我会收到"getuid was not declared in that scope"错误?
- 为什么我会收到此警告? "Member 'x' was not initialized in this constructor"
- 即使包含 <time.h 后仍"‘CLOCK_PER_SEC’ was not declared in this scope"错误>
- 我正在接受"Error: string was not declared in this scope"
- C++编译错误,"malloc: *** error for object: pointer being freed was not allocated"
- 创建一个移动分配函数,不断得到"pointer being freed was not allocated"
- C++ 我一直在"was not declared in this scope error"
- NDK r16b 独立工具链错误:"/usr/bin/ld: this linker was not configured to use sysroots"
- assimp-vc140-mt.dll ASSIMP was not found
- 将 .ui 文件导入 Qt5 C++时出错"was not declared in this scope"
- 如何从类调用函数 - 错误"was not in the scope"
- 编译 CPP 应用程序时出错。 "error: 'posix_memalign' was not declared in this scope"
- libcurl-x64.dll was not found
- 解析 csv 文件,"malloc: *** error for object 0x7ffeeb4f4b80: pointer being freed was not allocated"出现此错误
- C++ "pointer being freed was not allocated"