我通过以下形式获得了一个示例函数:
vector<int> function(var&){...}
变量在另一个.cpp文件中定义(如果相关),我假设&#39; var&amp;&#39;需要这样才能覆盖原始值并且不进行复制。尝试使用该变量时出现问题。更具体地说,我想要做的是使用为该类指定的函数。 (例如var.func())
我尝试过(伪语言):
vector<int> function(var& a){
a.func;
}
这不起作用,因为我收到错误。 &#34;无效使用不完整类型&#39; class var&#39;&#34;。它必须与定义&#39; a&#39;有关。
vector<int> function(var a){
a.func;
}
更改输入&#39; var&amp;&#39;到&#39; var&#39;像上面我得到错误&#34;&#39; a&#39;有不完整的类型&#34;。
它还注意到&#34;类var&#39;&#34;的前向声明。在上述两种情况下。
vector<int> function(var&){
~some random code without defining a 'var&'~
}
这完美运行。
在另一个.cpp文件中,我可以使用
var a;
a.func;
我包含了.cpp文件的头文件(也声明了var a)。仍然出现相同的错误。
我可以使用哪种解决方法?由于&#34;向量函数(var&amp;){...}&#34;给出我不认为我应该改变输入类型。
答案 0 :(得分:2)
然而,由于我收到错误,这不起作用。 &#34;无效使用不完整类型&#39; class var&#39;&#34;。它必须与定义&#39; a&#39;有关。
不,这与定义a
而不是定义var
有很大关系。 var
必须在该功能之前定义,但它不是。
我可以使用哪种解决方法?
解决方案很简单:在var
定义之前加入function
的定义:
struct var {
int func;
};
vector<int> function(var& a){
a.func;
// ...
}