gpt4 book ai didi

C++ 错误 "Variable or field declared void"

转载 作者:行者123 更新时间:2023-11-28 07:05:03 28 4
gpt4 key购买 nike

我对这个错误有疑问:“变量或字段声明为无效”。

主要.cpp

#include "header.h"

//Map per gestire il dizionario
std::map <std::string, Word> Dictionary;

int main()
{
create_word();
return 0;
}

标题.h

#include <iostream> //Libreria I/O
#include <string> //Libreria per le String
#include <map> //Libreria per le Map
#include "class_word.h" //Libreria con classe Word
#include "function_dictionary.cpp" //Funzioni sul dizionario
#include "function_word.cpp" //Funzioni sulla classe Word

class_word.h

//Classe Word, rappresenta la parola del dizionario
class Word {
//Attributi privati della classe Word
private:
std::string value; //Valore
std::string desc; //Descrizione

//Metodi pubblici della classe Word
public:
Word() {} //Costruttore
Word(std::string val, std::string des) {value=val; desc=des;} //Costruttore con argomenti
~Word(){} //Distruttore
std::string get_Value() {return value;} //Metodo per prendere la parola
std::string get_Desc() {return desc;} //Metodo per prendere la descrizione
};

函数字.cpp

//Funzione per la creazione di una word
void create_word ()
{
//Dichiarazione variabili
std::string word, description;

std::cout << "Parola: "; std::cin >> word;
std::cout << "Descrizione: "; std::cin >> description;

//Creazione Word
Word temp(word, description);

//Inserimento nel dizionario
insert_dictionary(temp);
}

函数字典.cpp

//Funzione per inserire la parola nel dizionario
void insert_dictionary (Word temp)
{
Dictionary.insert(make_pair(temp.get_Value(), temp));
}

最后一个文件我有错误...我该如何解决?我认为这是一个错误的文件包含,但我无法解决它......请帮助我...我是新手。

最佳答案

Dictionarymain.cpp 中声明,但在其他任何地方都声明;然后您将尝试在 function_dictionary.cpp 中使用它。那里没有申报。您需要使用 externDictionary 的声明放在其中一个头文件中,它包含在两个 .cpp 文件中。

这个问题充分解释了如何在两个源文件之间共享Dictionary,并展示了如何使用extern关键字:How do I use extern to share variables between source files?

此外,#include .cpp 文件通常是不好的做法。这几乎肯定会导致问题。更常见的模式是在 header 中声明所有内容,然后在 .cpp 文件中定义内容。

关于C++ 错误 "Variable or field declared void",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883832/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com