我编写了一个小的面向对象程序,我不知道为什么它不能编译
I bulit a small oop program and I don't know why it won't compile
代码如下:
#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;
}
};
错误如下:
<>之前'Oseba':未声明的标识符语法错误:标识符"akk"之前缺少";"没有找到"akk"标识符'akk':未声明的标识符错误C2228: left of '。Izpis必须有类/结构/联合您正在使用一个在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();
}
您会发现这些错误,因为这些函数已在您的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();
}
编译器不知道Oseba akk("kreso");
是什么。这是因为源文件是从上到下解释的。
您需要在int main()
之前声明类,或者将类放入另一个文件中,然后包含该文件
相关文章:
- 什么是"undetectable means",它们如何更改 C/C++ 程序的对象?
- 分段错误(内核转储) C++面向对象编程
- 由于缺少类模板,NVCC 编译面向对象代码时出现问题
- 在C++面向对象程序中,谁负责删除传递给构造函数的对象
- C++面向对象的字典程序
- 面向对象架构,用于简单的基于着色器的GL程序
- 程序语言和面向对象语言的游戏设计差异
- 使用C库的面向对象应用程序的方法
- 面向对象设计-将C应用程序转换为C++
- C++面向对象的客户端套接字应用程序设计
- 在面向对象的程序中实现MySQL连接C++
- OpenGL和面向对象程序结构
- C++面向对象程序和PHP面向对象程序之间的区别
- 将程序从结构化重写为面向对象
- C++面向对象程序中的获取和设置方法
- 为什么在面向对象的程序中使用'private'?
- 我编写了一个小的面向对象程序,我不知道为什么它不能编译
- C++面向对象程序复制了继承模式
- 如何在光线追踪面向对象的程序中声明变量,当它们中的大多数是矢量和相机声明时
- 结构不属于面向对象的程序