【问题标题】:Instance was not declared in main function [closed]实例未在主函数中声明[关闭]
【发布时间】:2012-12-24 14:01:23
【问题描述】:

我在创建实例时遇到问题。这确实是微不足道的代码,并且总是可以正常工作,但是当我开始使用 MinGW 编译器进行 C++11 时,发生了这个错误。

main.cpp:16:35: 错误:'myObjekt' 未在此范围内声明

main.cpp:16:50:错误:预期类型说明符 main.cpp:16:50:错误:

预期的';' main.cpp:20:12: error: type '' argument given

到“删除”,预期指针

    #include <iostream>
    #include "Objekt.h"

    int main(int argc, char** argv){

        std::cout << "Hi!" << std::endl;

        Colonisation::Objekt::Objekt* myObjekt = new Colonisation::Objekt::Objekt(5,4);
        std::cout << myObjekt->getXPosition() << std::endl;
        std::cout << myObjekt->getYPosition() << std::endl;

        delete myObjekt;

        return 0;
    }

【问题讨论】:

  • 错误信息提到第 16 行和第 20 行,但您的代码只有 15 行。
  • 你确定是Colonisation::Objekt::Objekt 而不仅仅是Colonisation::Objekt
  • @MartinKravec(回复您对 KerrekSB 的回复)在这种情况下,Kerrek 是对的,应该是 Colonisation::Objekt。不需要(实际上是错误)显式提及构造函数(构造函数总是与类同名)。
  • @MartinKravec(回复您对我的第一条评论的回复)。如果错误消息中的行号与您提供的代码不匹配,并且代码中没有解释错误所指行的 cmets,通常会使任何人都难以回答您的问题。
  • @MartinKravec: ...和KerrekSB正确指出重复类型是错误的。

标签: c++ c++11 mingw


【解决方案1】:

因此,以下内容应按预期工作:

int main(int argc, char** argv){

    std::cout << "Hi!" << std::endl;

    Colonisation::Objekt* myObjekt = new Colonisation::Objekt(5,4);
    std::cout << myObjekt->getXPosition() << std::endl;
    std::cout << myObjekt->getYPosition() << std::endl;

    delete myObjekt;

    return 0;
}

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多