return type of 'main' is not 'int'
时间: 2024-01-15 12:05:44 浏览: 63
这个错误通常是因为在C++的main函数中,返回值类型不是int。在C++中,main函数必须返回一个整数类型的值,表示程序的退出状态。可以尝试将main函数的返回类型改为int,例如:
```c++
int main() {
// your code here
return 0;
}
```
其中,`return 0;` 表示程序正常退出。如果需要返回其他值,可以将0替换为其他整数值。
相关问题
incomplete type is not allowed
incomplete type is not allowed是一个错误提示,意味着你在代码中使用了一个不完整的类型。这通常发生在你声明一个指向结构体或类的指针,但没有提供完整的结构体或类定义的情况下。
为了解决这个错误,你需要确保在使用指向结构体或类的指针之前,已经提供了完整的结构体或类定义。这可以通过包含相应的头文件来实现,以便在使用之前先声明结构体或类。
以下是一个示例,演示了如何解决incomplete type is not allowed错误:
```c
// 假设你有一个结构体定义在header.h中
// header.h
typedef struct {
int x;
int y;
} Point;
// 在另一个文件中使用结构体指针
// main.c
#include "header.h"
int main() {
Point* p; // 这里声明了一个指向Point结构体的指针
// 使用指针之前,确保提供了完整的结构体定义
// 这可以通过包含相应的头文件来实现
// 或者在当前文件中提供完整的结构体定义
p->x = 10;
p->y = 20;
return 0;
}
```
source type is not polymorphic
在 C++ 中,source type is not polymorphic 是一个编译错误,表示源类型不是多态类型。多态类型是指至少包含一个虚函数的类型,通过基类指针或引用可以访问其派生类对象的成员函数。如果源类型不是多态类型,那么无法使用 dynamic_cast 将其指针或引用转换为派生类指针或引用。
例如,下面的代码会出现 source type is not polymorphic 错误:
```
class Base {
public:
void func() {
cout << "This is Base class" << endl;
}
};
class Sub : public Base {
public:
void sub_func() {
cout << "This is Sub class special function" << endl;
}
};
int main() {
Base base_obj;
Sub *sub_ptr = dynamic_cast<Sub*>(&base_obj); // 错误:source type is not polymorphic
return 0;
}
```
因为 Base 类中没有虚函数,所以 Base 类不是多态类型,无法进行 dynamic_cast 转换。解决该错误的方法是在 Base 类中添加虚函数,将其变成多态类型。例如:
```
class Base {
public:
virtual void func() {
cout << "This is Base class" << endl;
}
};
class Sub : public Base {
public:
void sub_func() {
cout << "This is Sub class special function" << endl;
}
};
int main() {
Sub sub_obj;
Base *base_ptr = &sub_obj;
Sub *sub_ptr = dynamic_cast<Sub*>(base_ptr); // 正确:进行子类向下转型
if (sub_ptr != nullptr) {
sub_ptr->sub_func(); // 输出:This is Sub class special function
}
return 0;
}
```
在 Base 类中添加了虚函数 func,将其变成多态类型,可以正确进行 dynamic_cast 转换。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)