Visual Studio 失踪;前 *
Visual Studio missing ; before *
我正在 Visual 中研究 Blake 算法,但我遇到了一个小问题。
我的Block.h
文件
#pragma once
#include<string>
#include<bitset>
#include<iostream> // DEBUG
#include"BlocksContainer.h"
using namespace std;
class Block {
public:
static void CreateBlocks(string);
static string CreatePadding(int);
Block(string);
protected:
string BlockContent;
};
我的BlocksContainer.h
文件
#pragma once
#include"Block.h"
class BlocksContainer {
public:
int GetLength(void);
Block* GetNBlock(int);
BlocksContainer(Block**, int);
protected:
Block** Blocks;
int Length;
};
我不知道为什么但是视觉把我扔了 blockscontainer.h(7): error C2143: syntax error : missing ';' before '*'
我是 C++ 新手,我找不到错误。在 Stack 中,我发现 class 声明后缺少 ;
等解决方案,但我有分号。
你不需要:
#include"BlocksContainer.h"
在 block.h 中,此行导致 Block 在 BlocksContainer.h 中未定义,因为它对编译器尚不可见。
如果你真的需要这样的相互依赖 headers 你可以这样声明 class:
class Block;
在这样的语句之后,您可以使用 Block class,但只能在指针或引用等复合语句中使用 - 这意味着 Block* GetNBlock(int);
可以编译。
我正在 Visual 中研究 Blake 算法,但我遇到了一个小问题。
我的Block.h
文件
#pragma once
#include<string>
#include<bitset>
#include<iostream> // DEBUG
#include"BlocksContainer.h"
using namespace std;
class Block {
public:
static void CreateBlocks(string);
static string CreatePadding(int);
Block(string);
protected:
string BlockContent;
};
我的BlocksContainer.h
文件
#pragma once
#include"Block.h"
class BlocksContainer {
public:
int GetLength(void);
Block* GetNBlock(int);
BlocksContainer(Block**, int);
protected:
Block** Blocks;
int Length;
};
我不知道为什么但是视觉把我扔了 blockscontainer.h(7): error C2143: syntax error : missing ';' before '*'
我是 C++ 新手,我找不到错误。在 Stack 中,我发现 class 声明后缺少 ;
等解决方案,但我有分号。
你不需要:
#include"BlocksContainer.h"
在 block.h 中,此行导致 Block 在 BlocksContainer.h 中未定义,因为它对编译器尚不可见。
如果你真的需要这样的相互依赖 headers 你可以这样声明 class:
class Block;
在这样的语句之后,您可以使用 Block class,但只能在指针或引用等复合语句中使用 - 这意味着 Block* GetNBlock(int);
可以编译。