165 14 E:\AAsoft\suanfa\exp6\MGraph.cpp [Error] cannot convert 'ALGraph' to 'ALGraph*' for argument '1' to 'void DispAdj(ALGraph*)'
时间: 2023-12-06 21:02:44 浏览: 130
这个错误提示看起来是函数参数类型不匹配导致的。你调用了 `DispAdj` 函数,传入的参数类型是 `ALGraph`,但是函数定义中参数类型是 `ALGraph*`,两者不匹配。你需要把参数类型改成指针类型,或者在传入参数时取地址符 `&` 来将 `ALGraph` 类型的变量转换为指针类型。
示例代码:
```
// 函数定义
void DispAdj(ALGraph* G) {
// 函数实现
}
// 函数调用
ALGraph G;
DispAdj(&G); // 传入 G 的地址
```
相关问题
163 19 E:\AAsoft\suanfa\exp6\MGraph.cpp [Error] invalid initialization of non-const reference of type 'ALGraph*&' from an rvalue of type 'ALGraph*'
这个错误是因为你尝试将一个指向 ALGraph 对象的指针传递给一个引用参数,但是该引用参数不是 const 引用,而你传递的指针是一个 rvalue,这是不合法的。
你可以将该引用参数改为 const 引用或者将传递的指针改为一个 lvalue。
例如,将引用参数改为 const 引用:
```cpp
void foo(const ALGraph*& graph) {
// ...
}
```
或者将传递的指针改为一个 lvalue:
```cpp
ALGraph* graph = new ALGraph();
foo(graph);
```
注意:如果你选择第二种方法,需要在函数调用结束后手动释放该对象的内存。
48 23 E:\AAsoft\suanfa\exp1\SqList.cpp [Error] return-statement with a value, in function returning 'void' [-fpermissive]
这个错误是因为你的函数声明返回类型为void,但是在函数内部使用了return语句返回了一个值。在C++中,如果函数声明返回类型为void,则不应该在函数内部使用return语句返回值。如果需要在函数内部返回值,则应该将函数声明的返回类型修改为对应的类型,例如int、double等。
例如,如果你的函数需要返回int类型的值,则函数声明应该修改为:
```cpp
int myFunction(int a, int b) {
// 函数体
return a + b;
}
```
如果函数不需要返回值,则函数声明应该使用void类型,函数内部不需要使用return语句:
```cpp
void myFunction(int a, int b) {
// 函数体
// 不需要返回值
}
```
在你的代码中,如果你确实需要在函数内部返回一个值,那么你需要修改函数声明的返回类型为对应类型,例如:
```cpp
int myFunction(int a, int b) {
// 函数体
return a + b;
}
```
如果你不需要在函数内部返回值,则需要将函数内部的return语句删除或注释掉,例如:
```cpp
void myFunction(int a, int b) {
// 函数体
// 不需要返回值
// return 0; // 注释掉或删除这行代码
}
```
注意,修改完函数声明的返回类型之后,你需要在函数内部使用return语句返回一个对应类型的值,否则会导致编译错误。
阅读全文