Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我建立了一个小的面向对象程序,我不知道为什么它不能编译_C++_Oop - Fatal编程技术网

C++ 我建立了一个小的面向对象程序,我不知道为什么它不能编译

C++ 我建立了一个小的面向对象程序,我不知道为什么它不能编译,c++,oop,C++,Oop,代码如下: #include <iostream> #include <string> using namespace std; int main(){ Oseba akk("kreso"); akk.printing(); } class Oseba{ public: string Ime; Oseba(){} Oseba(string _Ime){ Ime=_Ime; } void printing(){ cout

代码如下:

#include <iostream>
#include <string>
using namespace std;

int main(){
  Oseba akk("kreso");
  akk.printing();
}

class Oseba{
public:
  string Ime;

  Oseba(){}

  Oseba(string _Ime){
    Ime=_Ime;
  }

  void printing(){
    cout << Ime << endl;
  }
};
以下是错误:

error C2065: 'Oseba' : undeclared identifier error C2146: syntax error : missing ';' before identifier 'akk' error C3861: 'akk': identifier not found error C2065: 'akk' : undeclared identifier error C2228: left of '.Izpis' must have class/struct/union
您正在使用一个在main之后定义的类。在main之前定义类,这样可以在编译时解决错误

 #include <iostream>
 #include <string>
 using namespace std;


class Oseba{
public:
    string Ime;

    Oseba(){}

    Oseba(string _Ime){
        Ime=_Ime;
    }

    void printing(){
        cout << Ime << endl;
    }
};

int main(){
    Oseba akk("kreso");
    akk.printing();
}

发现这些错误是因为函数已在主函数之前声明:

#include <iostream>
#include <string>
using namespace std;


class Oseba{
public:
    string Ime;

    Oseba(){}

    Oseba(string _Ime){
        Ime=_Ime;
    }

    void printing(){
        cout << Ime << endl;
    }
};

int main(){
    Oseba akk("kreso");
    akk.printing();
}

编译器不知道什么是Oseba-akkkros;是这是因为源文件是自上而下解释的


您需要在int main之前声明类,或者将类放入另一个文件中,然后包含该文件。

在使用类和函数之前声明它们!在这种情况下,在main之前,最快的修复方法是将类和函数的定义移动到main之上